{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 人脸识别与计算机视觉文档实践\n",
    "\n",
    ">* 本周主要内容：人脸（Face） API文档不同平台对比与实践及计算机视觉入门（认知服务）\n",
    ">* 202009_API_人工智能与机器学习_week03\n",
    ">*  电子讲义设计者：许智超\n",
    "<br/>\n",
    "<br/>\n",
    "\n",
    "## 复习\n",
    "\n",
    "* 上周主要内容： \n",
    ">    * 1、API文档\n",
    ">    * 2、认知服务-人脸识别\n",
    ">    * 3、pandas黑魔法（json_normalize）\n",
    "-----\n",
    "* 提问、检查与扩展：\n",
    ">    * 1、上周的Azure face API随机检查2位同学，对于API文档是否有能力详细阅读？\n",
    ">    * 2、抽查2位同学，对于获取的数据用途有何思考？是否尝试其他平台（XXX API、XXX API）      \n",
    ">    * 3、扩展: 我们尝试抽取了4张图片，包含AB、ABC、BCD、ABCD四个人物特征，如何通过API检查数据差异？\n",
    "  \n",
    "\n",
    "-----\n",
    "## 本周学习目标：\n",
    "\n",
    "> $\\mathcal{1、Azure 认知服务-人脸集合演示}$     \n",
    "> $\\mathcal{2、Face++ 之 FaceSets 实践}$     \n",
    "> $\\mathcal{3、计算机视觉实践}$    \n",
    "\n",
    "\n",
    "\n",
    "## 学生权限\n",
    "\n",
    "* [访问学生权益](https://azure.microsoft.com/zh-cn/education/)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>\n",
       "/* 本电子讲义使用之CSS */\n",
       "div.code_cell {\n",
       "    background-color: #e5f1fe;\n",
       "}\n",
       "div.cell.selected {\n",
       "    background-color: #effee2;\n",
       "    font-size: 2rem;\n",
       "    line-height: 2.4rem;\n",
       "}\n",
       "div.cell.selected .rendered_html table {\n",
       "    font-size: 2rem !important;\n",
       "    line-height: 2.4rem !important;\n",
       "}\n",
       ".rendered_html pre code {\n",
       "    background-color: #C4E4ff;   \n",
       "    padding: 2px 25px;\n",
       "}\n",
       ".rendered_html pre {\n",
       "    background-color: #99c9ff;\n",
       "}\n",
       "div.code_cell .CodeMirror {\n",
       "    font-size: 2rem !important;\n",
       "    line-height: 2.4rem !important;\n",
       "}\n",
       ".rendered_html img, .rendered_html svg {\n",
       "    max-width: 50%;\n",
       "    height: auto;\n",
       "    float: center;\n",
       "}\n",
       "/* Gradient transparent - color - transparent */\n",
       "hr {\n",
       "    border: 0;\n",
       "    border-bottom: 1px dashed #ccc;\n",
       "}\n",
       ".emoticon{\n",
       "    font-size: 5rem;\n",
       "    line-height: 4.4rem;\n",
       "    text-align: center;\n",
       "    vertical-align: middle;\n",
       "}\n",
       "\n",
       "</style>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%%html\n",
    "<style>\n",
    "/* 本电子讲义使用之CSS */\n",
    "div.code_cell {\n",
    "    background-color: #e5f1fe;\n",
    "}\n",
    "div.cell.selected {\n",
    "    background-color: #effee2;\n",
    "    font-size: 2rem;\n",
    "    line-height: 2.4rem;\n",
    "}\n",
    "div.cell.selected .rendered_html table {\n",
    "    font-size: 2rem !important;\n",
    "    line-height: 2.4rem !important;\n",
    "}\n",
    ".rendered_html pre code {\n",
    "    background-color: #C4E4ff;   \n",
    "    padding: 2px 25px;\n",
    "}\n",
    ".rendered_html pre {\n",
    "    background-color: #99c9ff;\n",
    "}\n",
    "div.code_cell .CodeMirror {\n",
    "    font-size: 2rem !important;\n",
    "    line-height: 2.4rem !important;\n",
    "}\n",
    ".rendered_html img, .rendered_html svg {\n",
    "    max-width: 50%;\n",
    "    height: auto;\n",
    "    float: center;\n",
    "}\n",
    "/* Gradient transparent - color - transparent */\n",
    "hr {\n",
    "    border: 0;\n",
    "    border-bottom: 1px dashed #ccc;\n",
    "}\n",
    ".emoticon{\n",
    "    font-size: 5rem;\n",
    "    line-height: 4.4rem;\n",
    "    text-align: center;\n",
    "    vertical-align: middle;\n",
    "}\n",
    "\n",
    "</style>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 复习\n",
    "\n",
    "> 1、回顾阅读API文档的关键点     \n",
    "> 2、正确阅读json数据 [jsonviewer.stack.hu(json转换检查数据)](http://jsonviewer.stack.hu)    \n",
    "> 3、pandas 中的json_normalize模块/函数"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## A-1 面部检测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'[{\"faceId\": \"4b3d0538-7a70-4543-8015-eb881b03de65\", \"faceRectangle\": {\"top\": 118, \"left\": 144, \"width\": 88, \"height\": 88}, \"faceAttributes\": {\"smile\": 0.813, \"headPose\": {\"pitch\": -3.4, \"roll\": 1.4, \"yaw\": 9.4}, \"gender\": \"male\", \"age\": 19.0, \"facialHair\": {\"moustache\": 0.1, \"beard\": 0.1, \"sideburns\": 0.1}, \"glasses\": \"NoGlasses\", \"emotion\": {\"anger\": 0.0, \"contempt\": 0.003, \"disgust\": 0.0, \"fear\": 0.0, \"happiness\": 0.813, \"neutral\": 0.184, \"sadness\": 0.0, \"surprise\": 0.0}, \"blur\": {\"blurLevel\": \"low\", \"value\": 0.21}, \"exposure\": {\"exposureLevel\": \"overExposure\", \"value\": 0.81}, \"noise\": {\"noiseLevel\": \"low\", \"value\": 0.01}, \"makeup\": {\"eyeMakeup\": false, \"lipMakeup\": false}, \"accessories\": [], \"occlusion\": {\"foreheadOccluded\": false, \"eyeOccluded\": false, \"mouthOccluded\": false}, \"hair\": {\"bald\": 0.18, \"invisible\": false, \"hairColor\": [{\"color\": \"brown\", \"confidence\": 0.95}, {\"color\": \"black\", \"confidence\": 0.93}, {\"color\": \"other\", \"confidence\": 0.23}, {\"color\": \"blond\", \"confidence\": 0.23}, {\"color\": \"gray\", \"confidence\": 0.21}, {\"color\": \"red\", \"confidence\": 0.15}, {\"color\": \"white\", \"confidence\": 0.0}]}}}, {\"faceId\": \"a4a5e6de-f2d4-4c9a-a5a7-dfef5d2e194a\", \"faceRectangle\": {\"top\": 117, \"left\": 376, \"width\": 64, \"height\": 64}, \"faceAttributes\": {\"smile\": 0.456, \"headPose\": {\"pitch\": -1.1, \"roll\": -0.2, \"yaw\": 6.6}, \"gender\": \"female\", \"age\": 22.0, \"facialHair\": {\"moustache\": 0.0, \"beard\": 0.0, \"sideburns\": 0.0}, \"glasses\": \"NoGlasses\", \"emotion\": {\"anger\": 0.0, \"contempt\": 0.001, \"disgust\": 0.0, \"fear\": 0.0, \"happiness\": 0.456, \"neutral\": 0.542, \"sadness\": 0.001, \"surprise\": 0.0}, \"blur\": {\"blurLevel\": \"low\", \"value\": 0.16}, \"exposure\": {\"exposureLevel\": \"goodExposure\", \"value\": 0.58}, \"noise\": {\"noiseLevel\": \"low\", \"value\": 0.01}, \"makeup\": {\"eyeMakeup\": false, \"lipMakeup\": true}, \"accessories\": [], \"occlusion\": {\"foreheadOccluded\": false, \"eyeOccluded\": false, \"mouthOccluded\": false}, \"hair\": {\"bald\": 0.08, \"invisible\": false, \"hairColor\": [{\"color\": \"black\", \"confidence\": 1.0}, {\"color\": \"other\", \"confidence\": 0.63}, {\"color\": \"brown\", \"confidence\": 0.46}, {\"color\": \"gray\", \"confidence\": 0.39}, {\"color\": \"blond\", \"confidence\": 0.03}, {\"color\": \"red\", \"confidence\": 0.01}, {\"color\": \"white\", \"confidence\": 0.0}]}}}, {\"faceId\": \"ad105550-1260-4980-aa18-274b5aec6da7\", \"faceRectangle\": {\"top\": 41, \"left\": 676, \"width\": 52, \"height\": 52}, \"faceAttributes\": {\"smile\": 1.0, \"headPose\": {\"pitch\": 3.0, \"roll\": -1.3, \"yaw\": -0.6}, \"gender\": \"male\", \"age\": 25.0, \"facialHair\": {\"moustache\": 0.1, \"beard\": 0.1, \"sideburns\": 0.1}, \"glasses\": \"ReadingGlasses\", \"emotion\": {\"anger\": 0.0, \"contempt\": 0.0, \"disgust\": 0.0, \"fear\": 0.0, \"happiness\": 1.0, \"neutral\": 0.0, \"sadness\": 0.0, \"surprise\": 0.0}, \"blur\": {\"blurLevel\": \"low\", \"value\": 0.0}, \"exposure\": {\"exposureLevel\": \"goodExposure\", \"value\": 0.66}, \"noise\": {\"noiseLevel\": \"low\", \"value\": 0.07}, \"makeup\": {\"eyeMakeup\": false, \"lipMakeup\": false}, \"accessories\": [{\"type\": \"glasses\", \"confidence\": 1.0}], \"occlusion\": {\"foreheadOccluded\": false, \"eyeOccluded\": false, \"mouthOccluded\": false}, \"hair\": {\"bald\": 0.06, \"invisible\": false, \"hairColor\": [{\"color\": \"black\", \"confidence\": 0.98}, {\"color\": \"brown\", \"confidence\": 0.96}, {\"color\": \"other\", \"confidence\": 0.22}, {\"color\": \"gray\", \"confidence\": 0.21}, {\"color\": \"red\", \"confidence\": 0.09}, {\"color\": \"blond\", \"confidence\": 0.08}, {\"color\": \"white\", \"confidence\": 0.0}]}}}, {\"faceId\": \"6c2a3cae-100a-4dff-a439-63b88060ef78\", \"faceRectangle\": {\"top\": 69, \"left\": 445, \"width\": 52, \"height\": 52}, \"faceAttributes\": {\"smile\": 1.0, \"headPose\": {\"pitch\": 0.2, \"roll\": 2.6, \"yaw\": 1.5}, \"gender\": \"female\", \"age\": 23.0, \"facialHair\": {\"moustache\": 0.0, \"beard\": 0.0, \"sideburns\": 0.0}, \"glasses\": \"NoGlasses\", \"emotion\": {\"anger\": 0.0, \"contempt\": 0.0, \"disgust\": 0.0, \"fear\": 0.0, \"happiness\": 1.0, \"neutral\": 0.0, \"sadness\": 0.0, \"surprise\": 0.0}, \"blur\": {\"blurLevel\": \"low\", \"value\": 0.0}, \"exposure\": {\"exposureLevel\": \"goodExposure\", \"value\": 0.56}, \"noise\": {\"noiseLevel\": \"medium\", \"value\": 0.33}, \"makeup\": {\"eyeMakeup\": false, \"lipMakeup\": false}, \"accessories\": [], \"occlusion\": {\"foreheadOccluded\": false, \"eyeOccluded\": false, \"mouthOccluded\": false}, \"hair\": {\"bald\": 0.11, \"invisible\": false, \"hairColor\": [{\"color\": \"black\", \"confidence\": 1.0}, {\"color\": \"brown\", \"confidence\": 0.81}, {\"color\": \"other\", \"confidence\": 0.41}, {\"color\": \"gray\", \"confidence\": 0.37}, {\"color\": \"blond\", \"confidence\": 0.03}, {\"color\": \"red\", \"confidence\": 0.02}, {\"color\": \"white\", \"confidence\": 0.0}]}}}, {\"faceId\": \"2a5b7a2a-cd3d-4252-9a9c-a6f6e7bf9d59\", \"faceRectangle\": {\"top\": 95, \"left\": 238, \"width\": 51, \"height\": 51}, \"faceAttributes\": {\"smile\": 0.981, \"headPose\": {\"pitch\": 7.2, \"roll\": 1.2, \"yaw\": 2.6}, \"gender\": \"female\", \"age\": 18.0, \"facialHair\": {\"moustache\": 0.0, \"beard\": 0.0, \"sideburns\": 0.0}, \"glasses\": \"ReadingGlasses\", \"emotion\": {\"anger\": 0.0, \"contempt\": 0.0, \"disgust\": 0.0, \"fear\": 0.0, \"happiness\": 0.981, \"neutral\": 0.019, \"sadness\": 0.0, \"surprise\": 0.0}, \"blur\": {\"blurLevel\": \"low\", \"value\": 0.07}, \"exposure\": {\"exposureLevel\": \"goodExposure\", \"value\": 0.69}, \"noise\": {\"noiseLevel\": \"medium\", \"value\": 0.48}, \"makeup\": {\"eyeMakeup\": false, \"lipMakeup\": false}, \"accessories\": [{\"type\": \"glasses\", \"confidence\": 1.0}], \"occlusion\": {\"foreheadOccluded\": false, \"eyeOccluded\": false, \"mouthOccluded\": false}, \"hair\": {\"bald\": 0.11, \"invisible\": false, \"hairColor\": [{\"color\": \"black\", \"confidence\": 0.98}, {\"color\": \"brown\", \"confidence\": 0.86}, {\"color\": \"other\", \"confidence\": 0.4}, {\"color\": \"gray\", \"confidence\": 0.36}, {\"color\": \"blond\", \"confidence\": 0.09}, {\"color\": \"red\", \"confidence\": 0.08}, {\"color\": \"white\", \"confidence\": 0.0}]}}}, {\"faceId\": \"ff75ceb8-60d6-4c4a-9b79-8acf385a7443\", \"faceRectangle\": {\"top\": 94, \"left\": 540, \"width\": 48, \"height\": 48}, \"faceAttributes\": {\"smile\": 1.0, \"headPose\": {\"pitch\": -7.7, \"roll\": 5.0, \"yaw\": 6.9}, \"gender\": \"female\", \"age\": 19.0, \"facialHair\": {\"moustache\": 0.0, \"beard\": 0.0, \"sideburns\": 0.0}, \"glasses\": \"NoGlasses\", \"emotion\": {\"anger\": 0.0, \"contempt\": 0.0, \"disgust\": 0.0, \"fear\": 0.0, \"happiness\": 1.0, \"neutral\": 0.0, \"sadness\": 0.0, \"surprise\": 0.0}, \"blur\": {\"blurLevel\": \"low\", \"value\": 0.08}, \"exposure\": {\"exposureLevel\": \"goodExposure\", \"value\": 0.65}, \"noise\": {\"noiseLevel\": \"low\", \"value\": 0.08}, \"makeup\": {\"eyeMakeup\": false, \"lipMakeup\": false}, \"accessories\": [], \"occlusion\": {\"foreheadOccluded\": false, \"eyeOccluded\": false, \"mouthOccluded\": false}, \"hair\": {\"bald\": 0.1, \"invisible\": false, \"hairColor\": [{\"color\": \"black\", \"confidence\": 1.0}, {\"color\": \"brown\", \"confidence\": 0.88}, {\"color\": \"other\", \"confidence\": 0.35}, {\"color\": \"gray\", \"confidence\": 0.33}, {\"color\": \"blond\", \"confidence\": 0.05}, {\"color\": \"red\", \"confidence\": 0.04}, {\"color\": \"white\", \"confidence\": 0.0}]}}}]'"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# A-1 面部检测\n",
    "import requests\n",
    "import json\n",
    "\n",
    "# set to your own subscription key value\n",
    "subscription_key = \"f3352653237f4f85a5cd1632aa1f2ebb\"\n",
    "assert subscription_key\n",
    "\n",
    "# replace <My Endpoint String> with the string from your endpoint URL\n",
    "face_api_url = 'https://renlian-api.cognitiveservices.azure.com/face/v1.0/detect'\n",
    "\n",
    "# 请求正文body\n",
    "image_url = 'http://newmedia.nfu.edu.cn/wcy/wp-content/uploads/2018/04/post_20180424__NFU_DoraHacks_imoji%E5%9B%A2%E9%98%9F.jpg'\n",
    "\n",
    "headers = {'Ocp-Apim-Subscription-Key': subscription_key}\n",
    "\n",
    "# 请求参数parameters\n",
    "params = {\n",
    "    'returnFaceId': 'true',\n",
    "    'returnFaceLandmarks': 'false',\n",
    "    # 可选参数,请仔细阅读API文档\n",
    "    'returnFaceAttributes': 'age,gender,headPose,smile,facialHair,glasses,emotion,hair,makeup,occlusion,accessories,blur,exposure,noise',\n",
    "}\n",
    "\n",
    "response = requests.post(face_api_url, params=params,\n",
    "                         headers=headers, json={\"url\": image_url})\n",
    "# json.dumps 将json--->bytes\n",
    "json.dumps(response.json())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## A-2 json转译\n",
    "\n",
    "> * bytes ---> json\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[{'faceId': '4b3d0538-7a70-4543-8015-eb881b03de65',\n",
       "  'faceRectangle': {'top': 118, 'left': 144, 'width': 88, 'height': 88},\n",
       "  'faceAttributes': {'smile': 0.813,\n",
       "   'headPose': {'pitch': -3.4, 'roll': 1.4, 'yaw': 9.4},\n",
       "   'gender': 'male',\n",
       "   'age': 19.0,\n",
       "   'facialHair': {'moustache': 0.1, 'beard': 0.1, 'sideburns': 0.1},\n",
       "   'glasses': 'NoGlasses',\n",
       "   'emotion': {'anger': 0.0,\n",
       "    'contempt': 0.003,\n",
       "    'disgust': 0.0,\n",
       "    'fear': 0.0,\n",
       "    'happiness': 0.813,\n",
       "    'neutral': 0.184,\n",
       "    'sadness': 0.0,\n",
       "    'surprise': 0.0},\n",
       "   'blur': {'blurLevel': 'low', 'value': 0.21},\n",
       "   'exposure': {'exposureLevel': 'overExposure', 'value': 0.81},\n",
       "   'noise': {'noiseLevel': 'low', 'value': 0.01},\n",
       "   'makeup': {'eyeMakeup': False, 'lipMakeup': False},\n",
       "   'accessories': [],\n",
       "   'occlusion': {'foreheadOccluded': False,\n",
       "    'eyeOccluded': False,\n",
       "    'mouthOccluded': False},\n",
       "   'hair': {'bald': 0.18,\n",
       "    'invisible': False,\n",
       "    'hairColor': [{'color': 'brown', 'confidence': 0.95},\n",
       "     {'color': 'black', 'confidence': 0.93},\n",
       "     {'color': 'other', 'confidence': 0.23},\n",
       "     {'color': 'blond', 'confidence': 0.23},\n",
       "     {'color': 'gray', 'confidence': 0.21},\n",
       "     {'color': 'red', 'confidence': 0.15},\n",
       "     {'color': 'white', 'confidence': 0.0}]}}},\n",
       " {'faceId': 'a4a5e6de-f2d4-4c9a-a5a7-dfef5d2e194a',\n",
       "  'faceRectangle': {'top': 117, 'left': 376, 'width': 64, 'height': 64},\n",
       "  'faceAttributes': {'smile': 0.456,\n",
       "   'headPose': {'pitch': -1.1, 'roll': -0.2, 'yaw': 6.6},\n",
       "   'gender': 'female',\n",
       "   'age': 22.0,\n",
       "   'facialHair': {'moustache': 0.0, 'beard': 0.0, 'sideburns': 0.0},\n",
       "   'glasses': 'NoGlasses',\n",
       "   'emotion': {'anger': 0.0,\n",
       "    'contempt': 0.001,\n",
       "    'disgust': 0.0,\n",
       "    'fear': 0.0,\n",
       "    'happiness': 0.456,\n",
       "    'neutral': 0.542,\n",
       "    'sadness': 0.001,\n",
       "    'surprise': 0.0},\n",
       "   'blur': {'blurLevel': 'low', 'value': 0.16},\n",
       "   'exposure': {'exposureLevel': 'goodExposure', 'value': 0.58},\n",
       "   'noise': {'noiseLevel': 'low', 'value': 0.01},\n",
       "   'makeup': {'eyeMakeup': False, 'lipMakeup': True},\n",
       "   'accessories': [],\n",
       "   'occlusion': {'foreheadOccluded': False,\n",
       "    'eyeOccluded': False,\n",
       "    'mouthOccluded': False},\n",
       "   'hair': {'bald': 0.08,\n",
       "    'invisible': False,\n",
       "    'hairColor': [{'color': 'black', 'confidence': 1.0},\n",
       "     {'color': 'other', 'confidence': 0.63},\n",
       "     {'color': 'brown', 'confidence': 0.46},\n",
       "     {'color': 'gray', 'confidence': 0.39},\n",
       "     {'color': 'blond', 'confidence': 0.03},\n",
       "     {'color': 'red', 'confidence': 0.01},\n",
       "     {'color': 'white', 'confidence': 0.0}]}}},\n",
       " {'faceId': 'ad105550-1260-4980-aa18-274b5aec6da7',\n",
       "  'faceRectangle': {'top': 41, 'left': 676, 'width': 52, 'height': 52},\n",
       "  'faceAttributes': {'smile': 1.0,\n",
       "   'headPose': {'pitch': 3.0, 'roll': -1.3, 'yaw': -0.6},\n",
       "   'gender': 'male',\n",
       "   'age': 25.0,\n",
       "   'facialHair': {'moustache': 0.1, 'beard': 0.1, 'sideburns': 0.1},\n",
       "   'glasses': 'ReadingGlasses',\n",
       "   'emotion': {'anger': 0.0,\n",
       "    'contempt': 0.0,\n",
       "    'disgust': 0.0,\n",
       "    'fear': 0.0,\n",
       "    'happiness': 1.0,\n",
       "    'neutral': 0.0,\n",
       "    'sadness': 0.0,\n",
       "    'surprise': 0.0},\n",
       "   'blur': {'blurLevel': 'low', 'value': 0.0},\n",
       "   'exposure': {'exposureLevel': 'goodExposure', 'value': 0.66},\n",
       "   'noise': {'noiseLevel': 'low', 'value': 0.07},\n",
       "   'makeup': {'eyeMakeup': False, 'lipMakeup': False},\n",
       "   'accessories': [{'type': 'glasses', 'confidence': 1.0}],\n",
       "   'occlusion': {'foreheadOccluded': False,\n",
       "    'eyeOccluded': False,\n",
       "    'mouthOccluded': False},\n",
       "   'hair': {'bald': 0.06,\n",
       "    'invisible': False,\n",
       "    'hairColor': [{'color': 'black', 'confidence': 0.98},\n",
       "     {'color': 'brown', 'confidence': 0.96},\n",
       "     {'color': 'other', 'confidence': 0.22},\n",
       "     {'color': 'gray', 'confidence': 0.21},\n",
       "     {'color': 'red', 'confidence': 0.09},\n",
       "     {'color': 'blond', 'confidence': 0.08},\n",
       "     {'color': 'white', 'confidence': 0.0}]}}},\n",
       " {'faceId': '6c2a3cae-100a-4dff-a439-63b88060ef78',\n",
       "  'faceRectangle': {'top': 69, 'left': 445, 'width': 52, 'height': 52},\n",
       "  'faceAttributes': {'smile': 1.0,\n",
       "   'headPose': {'pitch': 0.2, 'roll': 2.6, 'yaw': 1.5},\n",
       "   'gender': 'female',\n",
       "   'age': 23.0,\n",
       "   'facialHair': {'moustache': 0.0, 'beard': 0.0, 'sideburns': 0.0},\n",
       "   'glasses': 'NoGlasses',\n",
       "   'emotion': {'anger': 0.0,\n",
       "    'contempt': 0.0,\n",
       "    'disgust': 0.0,\n",
       "    'fear': 0.0,\n",
       "    'happiness': 1.0,\n",
       "    'neutral': 0.0,\n",
       "    'sadness': 0.0,\n",
       "    'surprise': 0.0},\n",
       "   'blur': {'blurLevel': 'low', 'value': 0.0},\n",
       "   'exposure': {'exposureLevel': 'goodExposure', 'value': 0.56},\n",
       "   'noise': {'noiseLevel': 'medium', 'value': 0.33},\n",
       "   'makeup': {'eyeMakeup': False, 'lipMakeup': False},\n",
       "   'accessories': [],\n",
       "   'occlusion': {'foreheadOccluded': False,\n",
       "    'eyeOccluded': False,\n",
       "    'mouthOccluded': False},\n",
       "   'hair': {'bald': 0.11,\n",
       "    'invisible': False,\n",
       "    'hairColor': [{'color': 'black', 'confidence': 1.0},\n",
       "     {'color': 'brown', 'confidence': 0.81},\n",
       "     {'color': 'other', 'confidence': 0.41},\n",
       "     {'color': 'gray', 'confidence': 0.37},\n",
       "     {'color': 'blond', 'confidence': 0.03},\n",
       "     {'color': 'red', 'confidence': 0.02},\n",
       "     {'color': 'white', 'confidence': 0.0}]}}},\n",
       " {'faceId': '2a5b7a2a-cd3d-4252-9a9c-a6f6e7bf9d59',\n",
       "  'faceRectangle': {'top': 95, 'left': 238, 'width': 51, 'height': 51},\n",
       "  'faceAttributes': {'smile': 0.981,\n",
       "   'headPose': {'pitch': 7.2, 'roll': 1.2, 'yaw': 2.6},\n",
       "   'gender': 'female',\n",
       "   'age': 18.0,\n",
       "   'facialHair': {'moustache': 0.0, 'beard': 0.0, 'sideburns': 0.0},\n",
       "   'glasses': 'ReadingGlasses',\n",
       "   'emotion': {'anger': 0.0,\n",
       "    'contempt': 0.0,\n",
       "    'disgust': 0.0,\n",
       "    'fear': 0.0,\n",
       "    'happiness': 0.981,\n",
       "    'neutral': 0.019,\n",
       "    'sadness': 0.0,\n",
       "    'surprise': 0.0},\n",
       "   'blur': {'blurLevel': 'low', 'value': 0.07},\n",
       "   'exposure': {'exposureLevel': 'goodExposure', 'value': 0.69},\n",
       "   'noise': {'noiseLevel': 'medium', 'value': 0.48},\n",
       "   'makeup': {'eyeMakeup': False, 'lipMakeup': False},\n",
       "   'accessories': [{'type': 'glasses', 'confidence': 1.0}],\n",
       "   'occlusion': {'foreheadOccluded': False,\n",
       "    'eyeOccluded': False,\n",
       "    'mouthOccluded': False},\n",
       "   'hair': {'bald': 0.11,\n",
       "    'invisible': False,\n",
       "    'hairColor': [{'color': 'black', 'confidence': 0.98},\n",
       "     {'color': 'brown', 'confidence': 0.86},\n",
       "     {'color': 'other', 'confidence': 0.4},\n",
       "     {'color': 'gray', 'confidence': 0.36},\n",
       "     {'color': 'blond', 'confidence': 0.09},\n",
       "     {'color': 'red', 'confidence': 0.08},\n",
       "     {'color': 'white', 'confidence': 0.0}]}}},\n",
       " {'faceId': 'ff75ceb8-60d6-4c4a-9b79-8acf385a7443',\n",
       "  'faceRectangle': {'top': 94, 'left': 540, 'width': 48, 'height': 48},\n",
       "  'faceAttributes': {'smile': 1.0,\n",
       "   'headPose': {'pitch': -7.7, 'roll': 5.0, 'yaw': 6.9},\n",
       "   'gender': 'female',\n",
       "   'age': 19.0,\n",
       "   'facialHair': {'moustache': 0.0, 'beard': 0.0, 'sideburns': 0.0},\n",
       "   'glasses': 'NoGlasses',\n",
       "   'emotion': {'anger': 0.0,\n",
       "    'contempt': 0.0,\n",
       "    'disgust': 0.0,\n",
       "    'fear': 0.0,\n",
       "    'happiness': 1.0,\n",
       "    'neutral': 0.0,\n",
       "    'sadness': 0.0,\n",
       "    'surprise': 0.0},\n",
       "   'blur': {'blurLevel': 'low', 'value': 0.08},\n",
       "   'exposure': {'exposureLevel': 'goodExposure', 'value': 0.65},\n",
       "   'noise': {'noiseLevel': 'low', 'value': 0.08},\n",
       "   'makeup': {'eyeMakeup': False, 'lipMakeup': False},\n",
       "   'accessories': [],\n",
       "   'occlusion': {'foreheadOccluded': False,\n",
       "    'eyeOccluded': False,\n",
       "    'mouthOccluded': False},\n",
       "   'hair': {'bald': 0.1,\n",
       "    'invisible': False,\n",
       "    'hairColor': [{'color': 'black', 'confidence': 1.0},\n",
       "     {'color': 'brown', 'confidence': 0.88},\n",
       "     {'color': 'other', 'confidence': 0.35},\n",
       "     {'color': 'gray', 'confidence': 0.33},\n",
       "     {'color': 'blond', 'confidence': 0.05},\n",
       "     {'color': 'red', 'confidence': 0.04},\n",
       "     {'color': 'white', 'confidence': 0.0}]}}}]"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# A-2\n",
    "results = response.json()\n",
    "results"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## A-3 pandas 数据表格化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>faceId</th>\n",
       "      <th>faceRectangle.top</th>\n",
       "      <th>faceRectangle.left</th>\n",
       "      <th>faceRectangle.width</th>\n",
       "      <th>faceRectangle.height</th>\n",
       "      <th>faceAttributes.smile</th>\n",
       "      <th>faceAttributes.headPose.pitch</th>\n",
       "      <th>faceAttributes.headPose.roll</th>\n",
       "      <th>faceAttributes.headPose.yaw</th>\n",
       "      <th>faceAttributes.gender</th>\n",
       "      <th>...</th>\n",
       "      <th>faceAttributes.noise.value</th>\n",
       "      <th>faceAttributes.makeup.eyeMakeup</th>\n",
       "      <th>faceAttributes.makeup.lipMakeup</th>\n",
       "      <th>faceAttributes.accessories</th>\n",
       "      <th>faceAttributes.occlusion.foreheadOccluded</th>\n",
       "      <th>faceAttributes.occlusion.eyeOccluded</th>\n",
       "      <th>faceAttributes.occlusion.mouthOccluded</th>\n",
       "      <th>faceAttributes.hair.bald</th>\n",
       "      <th>faceAttributes.hair.invisible</th>\n",
       "      <th>faceAttributes.hair.hairColor</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>4b3d0538-7a70-4543-8015-eb881b03de65</td>\n",
       "      <td>118</td>\n",
       "      <td>144</td>\n",
       "      <td>88</td>\n",
       "      <td>88</td>\n",
       "      <td>0.813</td>\n",
       "      <td>-3.4</td>\n",
       "      <td>1.4</td>\n",
       "      <td>9.4</td>\n",
       "      <td>male</td>\n",
       "      <td>...</td>\n",
       "      <td>0.01</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>[]</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>0.18</td>\n",
       "      <td>False</td>\n",
       "      <td>[{'color': 'brown', 'confidence': 0.95}, {'col...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>a4a5e6de-f2d4-4c9a-a5a7-dfef5d2e194a</td>\n",
       "      <td>117</td>\n",
       "      <td>376</td>\n",
       "      <td>64</td>\n",
       "      <td>64</td>\n",
       "      <td>0.456</td>\n",
       "      <td>-1.1</td>\n",
       "      <td>-0.2</td>\n",
       "      <td>6.6</td>\n",
       "      <td>female</td>\n",
       "      <td>...</td>\n",
       "      <td>0.01</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>[]</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>0.08</td>\n",
       "      <td>False</td>\n",
       "      <td>[{'color': 'black', 'confidence': 1.0}, {'colo...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>ad105550-1260-4980-aa18-274b5aec6da7</td>\n",
       "      <td>41</td>\n",
       "      <td>676</td>\n",
       "      <td>52</td>\n",
       "      <td>52</td>\n",
       "      <td>1.000</td>\n",
       "      <td>3.0</td>\n",
       "      <td>-1.3</td>\n",
       "      <td>-0.6</td>\n",
       "      <td>male</td>\n",
       "      <td>...</td>\n",
       "      <td>0.07</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>[{'type': 'glasses', 'confidence': 1.0}]</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>0.06</td>\n",
       "      <td>False</td>\n",
       "      <td>[{'color': 'black', 'confidence': 0.98}, {'col...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>6c2a3cae-100a-4dff-a439-63b88060ef78</td>\n",
       "      <td>69</td>\n",
       "      <td>445</td>\n",
       "      <td>52</td>\n",
       "      <td>52</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.2</td>\n",
       "      <td>2.6</td>\n",
       "      <td>1.5</td>\n",
       "      <td>female</td>\n",
       "      <td>...</td>\n",
       "      <td>0.33</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>[]</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>0.11</td>\n",
       "      <td>False</td>\n",
       "      <td>[{'color': 'black', 'confidence': 1.0}, {'colo...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2a5b7a2a-cd3d-4252-9a9c-a6f6e7bf9d59</td>\n",
       "      <td>95</td>\n",
       "      <td>238</td>\n",
       "      <td>51</td>\n",
       "      <td>51</td>\n",
       "      <td>0.981</td>\n",
       "      <td>7.2</td>\n",
       "      <td>1.2</td>\n",
       "      <td>2.6</td>\n",
       "      <td>female</td>\n",
       "      <td>...</td>\n",
       "      <td>0.48</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>[{'type': 'glasses', 'confidence': 1.0}]</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>0.11</td>\n",
       "      <td>False</td>\n",
       "      <td>[{'color': 'black', 'confidence': 0.98}, {'col...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>ff75ceb8-60d6-4c4a-9b79-8acf385a7443</td>\n",
       "      <td>94</td>\n",
       "      <td>540</td>\n",
       "      <td>48</td>\n",
       "      <td>48</td>\n",
       "      <td>1.000</td>\n",
       "      <td>-7.7</td>\n",
       "      <td>5.0</td>\n",
       "      <td>6.9</td>\n",
       "      <td>female</td>\n",
       "      <td>...</td>\n",
       "      <td>0.08</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>[]</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>0.10</td>\n",
       "      <td>False</td>\n",
       "      <td>[{'color': 'black', 'confidence': 1.0}, {'colo...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>6 rows × 38 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                 faceId  faceRectangle.top  \\\n",
       "0  4b3d0538-7a70-4543-8015-eb881b03de65                118   \n",
       "1  a4a5e6de-f2d4-4c9a-a5a7-dfef5d2e194a                117   \n",
       "2  ad105550-1260-4980-aa18-274b5aec6da7                 41   \n",
       "3  6c2a3cae-100a-4dff-a439-63b88060ef78                 69   \n",
       "4  2a5b7a2a-cd3d-4252-9a9c-a6f6e7bf9d59                 95   \n",
       "5  ff75ceb8-60d6-4c4a-9b79-8acf385a7443                 94   \n",
       "\n",
       "   faceRectangle.left  faceRectangle.width  faceRectangle.height  \\\n",
       "0                 144                   88                    88   \n",
       "1                 376                   64                    64   \n",
       "2                 676                   52                    52   \n",
       "3                 445                   52                    52   \n",
       "4                 238                   51                    51   \n",
       "5                 540                   48                    48   \n",
       "\n",
       "   faceAttributes.smile  faceAttributes.headPose.pitch  \\\n",
       "0                 0.813                           -3.4   \n",
       "1                 0.456                           -1.1   \n",
       "2                 1.000                            3.0   \n",
       "3                 1.000                            0.2   \n",
       "4                 0.981                            7.2   \n",
       "5                 1.000                           -7.7   \n",
       "\n",
       "   faceAttributes.headPose.roll  faceAttributes.headPose.yaw  \\\n",
       "0                           1.4                          9.4   \n",
       "1                          -0.2                          6.6   \n",
       "2                          -1.3                         -0.6   \n",
       "3                           2.6                          1.5   \n",
       "4                           1.2                          2.6   \n",
       "5                           5.0                          6.9   \n",
       "\n",
       "  faceAttributes.gender  ...  faceAttributes.noise.value  \\\n",
       "0                  male  ...                        0.01   \n",
       "1                female  ...                        0.01   \n",
       "2                  male  ...                        0.07   \n",
       "3                female  ...                        0.33   \n",
       "4                female  ...                        0.48   \n",
       "5                female  ...                        0.08   \n",
       "\n",
       "   faceAttributes.makeup.eyeMakeup  faceAttributes.makeup.lipMakeup  \\\n",
       "0                            False                            False   \n",
       "1                            False                             True   \n",
       "2                            False                            False   \n",
       "3                            False                            False   \n",
       "4                            False                            False   \n",
       "5                            False                            False   \n",
       "\n",
       "                 faceAttributes.accessories  \\\n",
       "0                                        []   \n",
       "1                                        []   \n",
       "2  [{'type': 'glasses', 'confidence': 1.0}]   \n",
       "3                                        []   \n",
       "4  [{'type': 'glasses', 'confidence': 1.0}]   \n",
       "5                                        []   \n",
       "\n",
       "  faceAttributes.occlusion.foreheadOccluded  \\\n",
       "0                                     False   \n",
       "1                                     False   \n",
       "2                                     False   \n",
       "3                                     False   \n",
       "4                                     False   \n",
       "5                                     False   \n",
       "\n",
       "   faceAttributes.occlusion.eyeOccluded  \\\n",
       "0                                 False   \n",
       "1                                 False   \n",
       "2                                 False   \n",
       "3                                 False   \n",
       "4                                 False   \n",
       "5                                 False   \n",
       "\n",
       "   faceAttributes.occlusion.mouthOccluded  faceAttributes.hair.bald  \\\n",
       "0                                   False                      0.18   \n",
       "1                                   False                      0.08   \n",
       "2                                   False                      0.06   \n",
       "3                                   False                      0.11   \n",
       "4                                   False                      0.11   \n",
       "5                                   False                      0.10   \n",
       "\n",
       "   faceAttributes.hair.invisible  \\\n",
       "0                          False   \n",
       "1                          False   \n",
       "2                          False   \n",
       "3                          False   \n",
       "4                          False   \n",
       "5                          False   \n",
       "\n",
       "                       faceAttributes.hair.hairColor  \n",
       "0  [{'color': 'brown', 'confidence': 0.95}, {'col...  \n",
       "1  [{'color': 'black', 'confidence': 1.0}, {'colo...  \n",
       "2  [{'color': 'black', 'confidence': 0.98}, {'col...  \n",
       "3  [{'color': 'black', 'confidence': 1.0}, {'colo...  \n",
       "4  [{'color': 'black', 'confidence': 0.98}, {'col...  \n",
       "5  [{'color': 'black', 'confidence': 1.0}, {'colo...  \n",
       "\n",
       "[6 rows x 38 columns]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# A-3\n",
    "import pandas as pd\n",
    "df_face = pd.json_normalize(results)\n",
    "df_face"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## A-4 数据取值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['4b3d0538-7a70-4543-8015-eb881b03de65',\n",
       " 'a4a5e6de-f2d4-4c9a-a5a7-dfef5d2e194a',\n",
       " 'ad105550-1260-4980-aa18-274b5aec6da7',\n",
       " '6c2a3cae-100a-4dff-a439-63b88060ef78',\n",
       " '2a5b7a2a-cd3d-4252-9a9c-a6f6e7bf9d59',\n",
       " 'ff75ceb8-60d6-4c4a-9b79-8acf385a7443']"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "faceID = df_face['faceId'].values.tolist()\n",
    "faceID "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['faceId', 'faceRectangle.top', 'faceRectangle.left',\n",
       "       'faceRectangle.width', 'faceRectangle.height', 'faceAttributes.smile',\n",
       "       'faceAttributes.headPose.pitch', 'faceAttributes.headPose.roll',\n",
       "       'faceAttributes.headPose.yaw', 'faceAttributes.gender',\n",
       "       'faceAttributes.age', 'faceAttributes.facialHair.moustache',\n",
       "       'faceAttributes.facialHair.beard',\n",
       "       'faceAttributes.facialHair.sideburns', 'faceAttributes.glasses',\n",
       "       'faceAttributes.emotion.anger', 'faceAttributes.emotion.contempt',\n",
       "       'faceAttributes.emotion.disgust', 'faceAttributes.emotion.fear',\n",
       "       'faceAttributes.emotion.happiness', 'faceAttributes.emotion.neutral',\n",
       "       'faceAttributes.emotion.sadness', 'faceAttributes.emotion.surprise',\n",
       "       'faceAttributes.blur.blurLevel', 'faceAttributes.blur.value',\n",
       "       'faceAttributes.exposure.exposureLevel',\n",
       "       'faceAttributes.exposure.value', 'faceAttributes.noise.noiseLevel',\n",
       "       'faceAttributes.noise.value', 'faceAttributes.makeup.eyeMakeup',\n",
       "       'faceAttributes.makeup.lipMakeup', 'faceAttributes.accessories',\n",
       "       'faceAttributes.occlusion.foreheadOccluded',\n",
       "       'faceAttributes.occlusion.eyeOccluded',\n",
       "       'faceAttributes.occlusion.mouthOccluded', 'faceAttributes.hair.bald',\n",
       "       'faceAttributes.hair.invisible', 'faceAttributes.hair.hairColor'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 检查属性/特征值\n",
    "df_face.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>faceId</th>\n",
       "      <th>faceAttributes.glasses</th>\n",
       "      <th>faceAttributes.emotion.neutral</th>\n",
       "      <th>faceAttributes.age</th>\n",
       "      <th>faceAttributes.gender</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>4b3d0538-7a70-4543-8015-eb881b03de65</td>\n",
       "      <td>NoGlasses</td>\n",
       "      <td>0.184</td>\n",
       "      <td>19.0</td>\n",
       "      <td>male</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>a4a5e6de-f2d4-4c9a-a5a7-dfef5d2e194a</td>\n",
       "      <td>NoGlasses</td>\n",
       "      <td>0.542</td>\n",
       "      <td>22.0</td>\n",
       "      <td>female</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>ad105550-1260-4980-aa18-274b5aec6da7</td>\n",
       "      <td>ReadingGlasses</td>\n",
       "      <td>0.000</td>\n",
       "      <td>25.0</td>\n",
       "      <td>male</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>6c2a3cae-100a-4dff-a439-63b88060ef78</td>\n",
       "      <td>NoGlasses</td>\n",
       "      <td>0.000</td>\n",
       "      <td>23.0</td>\n",
       "      <td>female</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2a5b7a2a-cd3d-4252-9a9c-a6f6e7bf9d59</td>\n",
       "      <td>ReadingGlasses</td>\n",
       "      <td>0.019</td>\n",
       "      <td>18.0</td>\n",
       "      <td>female</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>ff75ceb8-60d6-4c4a-9b79-8acf385a7443</td>\n",
       "      <td>NoGlasses</td>\n",
       "      <td>0.000</td>\n",
       "      <td>19.0</td>\n",
       "      <td>female</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                 faceId faceAttributes.glasses  \\\n",
       "0  4b3d0538-7a70-4543-8015-eb881b03de65              NoGlasses   \n",
       "1  a4a5e6de-f2d4-4c9a-a5a7-dfef5d2e194a              NoGlasses   \n",
       "2  ad105550-1260-4980-aa18-274b5aec6da7         ReadingGlasses   \n",
       "3  6c2a3cae-100a-4dff-a439-63b88060ef78              NoGlasses   \n",
       "4  2a5b7a2a-cd3d-4252-9a9c-a6f6e7bf9d59         ReadingGlasses   \n",
       "5  ff75ceb8-60d6-4c4a-9b79-8acf385a7443              NoGlasses   \n",
       "\n",
       "   faceAttributes.emotion.neutral  faceAttributes.age faceAttributes.gender  \n",
       "0                           0.184                19.0                  male  \n",
       "1                           0.542                22.0                female  \n",
       "2                           0.000                25.0                  male  \n",
       "3                           0.000                23.0                female  \n",
       "4                           0.019                18.0                female  \n",
       "5                           0.000                19.0                female  "
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 可观察其中几组数据\n",
    "df_face[['faceId','faceAttributes.glasses','faceAttributes.emotion.neutral','faceAttributes.age','faceAttributes.gender']]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Azure 认知服务-人脸演示"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 试一试：人脸验证(难)\n",
    "\n",
    "人脸相似度？有没有试下？\n",
    "\n",
    ">* API人脸文档中最重要的组成部分：\n",
    " >>* Request URL？\n",
    " >>* Http Method？\n",
    " >>* 参数？\n",
    "\n",
    "----\n",
    ">* 不同的人脸对比数据\n",
    "  >>* 人脸验证关键数据？\n",
    "  >>* 根据哪些数据证明是同一个人？\n",
    "    \n",
    "----\n",
    ">* 具体步骤：\n",
    "  >>* 1、Create 请求成功200 返回空字符串\n",
    "  >>* 2、Add face 请求成功200 返回persistedFaceId\n",
    "  >>* 3、Detect 准备 被检测人 人脸的id\n",
    "  >>* 4、Find similars 返回相似置信度\n",
    "  >>* 附加：get查看facelists\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "https://api-hjq.cognitiveservices.azure.com/face/v1.0/facelists/zhichao02 \n",
      " https://api-hjq.cognitiveservices.azure.com/face/v1.0/facelists/zhichao02 \n",
      " https://api-hjq.cognitiveservices.azure.com/face/v1.0/facelists/zhichao02\n"
     ]
    }
   ],
   "source": [
    "# 字符串拼接练习\n",
    "faceListId = \"zhichao02\"\n",
    "# 1\n",
    "url_01 = \"https://api-hjq.cognitiveservices.azure.com/face/v1.0/facelists/\" + faceListId # string 拼接\n",
    "# 2\n",
    "url_02 = \"https://api-hjq.cognitiveservices.azure.com/face/v1.0/facelists/%s\" %(faceListId)\n",
    "# 3 \n",
    "url_03 = \"https://api-hjq.cognitiveservices.azure.com/face/v1.0/facelists/{}\".format(faceListId)\n",
    "print(url_01,'\\n',url_02,'\\n',url_03)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### create facelist"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import requests\n",
    "# 1、create  list列表\n",
    "# faceListId\n",
    "faceListId =\"who__\"  # 学生填写设置人脸列表ID\n",
    "create_facelists_url = \"https://eastasia.api.cognitive.microsoft.com/face/v1.0/facelists/%s\" %(faceListId)# 学生填写 ☆ 注意此条url修改\n",
    "subscription_key = \"f3352653237f4f85a5cd1632aa1f2ebb\"\n",
    "assert subscription_key\n",
    "\n",
    "headers = {\n",
    "    # Request headers\n",
    "    'Content-Type': 'application/json',\n",
    "    'Ocp-Apim-Subscription-Key': \"f3352653237f4f85a5cd1632aa1f2ebb\",\n",
    "}\n",
    "data = {\n",
    "    \"name\": \"谁和像我\",\n",
    "    \"userData\": \"许多人脸\",\n",
    "    \"recognitionModel\": \"recognition_03\",\n",
    "    \n",
    "}\n",
    "\n",
    "r_create = requests.put(create_facelists_url,headers=headers,json=data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Response [200]>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r_create"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "b''"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r_create.content"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### get facelist"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 检查你的facelist的信息\n",
    "get_facelist_url = \"https://eastasia.api.cognitive.microsoft.com/face/v1.0/facelists/%s\" %(faceListId)# 学生填写\n",
    "r_get_facelist = requests.get(get_facelist_url,headers=headers)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'persistedFaces': [],\n",
       " 'faceListId': 'who__',\n",
       " 'name': '谁和像我',\n",
       " 'userData': '许多人脸'}"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r_get_facelist.json()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Add face 请求成功200 返回persistedFaceId\n",
    "> 我们通过上面的步骤建好了一个脸的列表，接下来我们要给这个列表添加脸了！把我们想要对比的脸存进列表吧\n",
    "- [添加人脸进列表api文档](https://docs.microsoft.com/zh-cn/rest/api/cognitiveservices/face/facelist/addfacefromurl)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "#先加一张脸试试\n",
    "# 2、Add face\n",
    "add_face_url =\"https://eastasia.api.cognitive.microsoft.com/face/v1.0/facelists/%s/persistedFaces\" %(faceListId)\n",
    "\n",
    "assert subscription_key\n",
    "headers = {\n",
    "    # Request headers\n",
    "    'Content-Type': 'application/json',\n",
    "    'Ocp-Apim-Subscription-Key': subscription_key,\n",
    "}\n",
    "img_url = \"https://256vimg2.xpghost.cn/uploads/2020/0601/20200601040412710.jpg\"\n",
    "\n",
    "params_add_face={\"faceListId\":'who_',\n",
    "    \"userData\":'陆柯燃'\n",
    "}\n",
    "\n",
    "r_add_face = requests.post(add_face_url,headers=headers,params=params_add_face,json={\"url\":img_url})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "200"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r_add_face.status_code"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'persistedFaces': [{'persistedFaceId': 'aeb02336-c590-4052-8434-18b5e1600efc',\n",
       "   'userData': '陆柯燃'},\n",
       "  {'persistedFaceId': '385ecb51-7476-459b-b838-7db9ab5e1a78',\n",
       "   'userData': '陆柯燃'}],\n",
       " 'faceListId': 'who__',\n",
       " 'name': '谁和像我',\n",
       " 'userData': '许多人脸'}"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 检查你的facelist的信息\n",
    "get_facelist_url = \"https://eastasia.api.cognitive.microsoft.com/face/v1.0/facelists/%s\" %(faceListId)\n",
    "r_get_facelist = requests.get(get_facelist_url,headers=headers)\n",
    "r_get_facelist.json()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 扩展内容，封装成函数方便多次使用 *\n",
    "> 我们要添加多张脸，但是为了减少代码量，我们可以把代码封装成函数，避免每次都要写一大堆代码"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 封装成函数方便添加图片/函数——可以重复使用相同的功能\n",
    "def AddFace(img_url=str,userData=str):\n",
    "    add_face_url =\"https://renlian-api.cognitiveservices.azure.com/face/v1.0/facelists/%s/persistedFaces\" %(faceListId) \n",
    "    subscription_key = \"f3352653237f4f85a5cd1632aa1f2ebb\"\n",
    "    assert subscription_key\n",
    "    headers = {\n",
    "        # Request headers\n",
    "        'Content-Type': 'application/json',\n",
    "        'Ocp-Apim-Subscription-Key': subscription_key,\n",
    "    }\n",
    "    img_url = img_url\n",
    "\n",
    "    params_add_face={\n",
    "        \"userData\":userData\n",
    "    }\n",
    "    r_add_face = requests.post(add_face_url.format(faceListId),headers=headers,params=params_add_face,json={\"url\":img_url})\n",
    "    return r_add_face.status_code#返回出状态码"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "200"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "AddFace(\"https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcT_N5AnBBwv6Ykbm9hDIPRySoSuzKN_N9IRCg&usqp=CAU\",\"沈月\")\n",
    "AddFace(\"https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcR2RaWeNZ5L9Oc3JFIHNmWRDHwdW4hkForMNg&usqp=CAU\",\"宋祖儿\")\n",
    "AddFace(\"https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcTvObXdqC2ucQP3zKboaUaof3W94Jtg8_cBgQ&usqp=CAU\",\"邓伦\")\n",
    "AddFace(\"https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQXBDj6XWB0U0YW8jARq3MntjRhTsuGRbyfKA&usqp=CAU\",\"蔡徐坤\")\n",
    "AddFace(\"https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcSKx7N0TAeHLz6sPDObVIwCSqDTRg7iiIaQKg&usqp=CAU\",\"朱一龙\")\n",
    "AddFace(\"https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcRF0uY2sd-O3_UnkWsNpmFmbpQyHQrZYA2ncw&usqp=CAU\",\"白敬亭\")\n",
    "AddFace(\"https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcRgjVmWWqVBOiKnTwyguQFfVRQ-ophybGgC6g&usqp=CAU\",\"杨幂\")\n",
    "AddFace(\"https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcR6QwyxIMMs65CSIzp8hB0WXBXp0NeucAg9Tg&usqp=CAU\",\"刘雨昕\")\n",
    "AddFace(\"https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQHCspQmzDy2K2P8-yP2fZwdTuoiZWjtHoN6g&usqp=CAU\",\"baby\")\n",
    "AddFace(\"https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQlOi41VppCRbVL-V8Kef8xefihPFoFR2pZ5A&usqp=CAU\",\"虞书欣\")\n",
    "AddFace(\"https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcSdvhFx6TyHw2gY9LTPzJokTZa75Q1RRmx64g&usqp=CAU\",\"许佳琪\")\n",
    "AddFace(\"https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcSPtko-ZehCsRr4qcmAXmOw2rViRWSG3qT-PA&usqp=CAU\",\"喻言\")\n",
    "AddFace(\"https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcSWl2t7PnkXy_C4Oiwb1I9kTugTstVkyFea9Q&usqp=CAU\",\"谢可寅\")\n",
    "AddFace(\"https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcT0R_Em1cBat6U9FXcnAW76Z54e3wIxNhx_cQ&usqp=CAU\",\"安崎\")\n",
    "AddFace(\"https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcTC3APfUn5e81HHFWjSBRKZPaWN9TKtwliJNQ&usqp=CAU\",\"赵小棠\")\n",
    "AddFace(\"https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQPkiPuIu7LyygY69m0d895tVnIPeoDwLUpQA&usqp=CAU\",\"孔雪儿\")\n",
    "AddFace(\"https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcSpgFI70njXWCgVQf6ceUI1HeOEL-lSw9Sbzw&usqp=CAU\",\"马嘉祺\")\n",
    "AddFace(\"https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcS_JBXSCz2J_Rp8NRB6Wo-YT7ZNDQ41OMv7Mw&usqp=CAU\",\"丁海寅\")\n",
    "AddFace(\"https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcRa0rhdBy3H6eL6jsUshy1RNXWsUAa2fHDW7g&usqp=CAU\",\"林凡\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'persistedFaces': [{'persistedFaceId': 'aeb02336-c590-4052-8434-18b5e1600efc',\n",
       "   'userData': '陆柯燃'},\n",
       "  {'persistedFaceId': '385ecb51-7476-459b-b838-7db9ab5e1a78',\n",
       "   'userData': '陆柯燃'},\n",
       "  {'persistedFaceId': '9e0fada0-efe1-4928-826b-ff1e06487397',\n",
       "   'userData': '沈月'},\n",
       "  {'persistedFaceId': 'fe1bbc6f-b661-405a-8c35-b1ce4b594acb',\n",
       "   'userData': '宋祖儿'},\n",
       "  {'persistedFaceId': '02c551a1-7834-45e6-a2d0-d09d6d24cfd3',\n",
       "   'userData': '邓伦'},\n",
       "  {'persistedFaceId': 'ad80a5a5-b2ec-46a8-9cb4-a6e919412a75',\n",
       "   'userData': '蔡徐坤'},\n",
       "  {'persistedFaceId': 'd109cb1b-60bf-4ff5-91fd-ab7987448ce5',\n",
       "   'userData': '朱一龙'},\n",
       "  {'persistedFaceId': 'e3b9c796-83d7-44d9-9158-a3e8f00057a1',\n",
       "   'userData': '白敬亭'},\n",
       "  {'persistedFaceId': '60191bc0-9203-4787-9188-d0dfae84f1da',\n",
       "   'userData': '杨幂'},\n",
       "  {'persistedFaceId': '6635ea9e-4570-45a2-892d-a87fb0391516',\n",
       "   'userData': '刘雨昕'},\n",
       "  {'persistedFaceId': '44976cb9-d2af-4141-8188-348ee6d605d2',\n",
       "   'userData': 'baby'},\n",
       "  {'persistedFaceId': 'c4f191f3-f2a5-48fc-bdd1-eb1c3674308b',\n",
       "   'userData': '虞书欣'},\n",
       "  {'persistedFaceId': '2bd76580-fab3-4302-8e8e-624f5e9ccb46',\n",
       "   'userData': '喻言'},\n",
       "  {'persistedFaceId': '9f60d688-0c95-4516-be90-7c6df07a8711',\n",
       "   'userData': '谢可寅'},\n",
       "  {'persistedFaceId': '6ace0da4-a406-444c-acc5-065070b97bf0',\n",
       "   'userData': '安崎'},\n",
       "  {'persistedFaceId': '0f842607-1aa6-41eb-adcc-ecffd1c45476',\n",
       "   'userData': '赵小棠'},\n",
       "  {'persistedFaceId': '5eb76bd0-f5c6-48b6-8219-0e7beb6387c5',\n",
       "   'userData': '孔雪儿'},\n",
       "  {'persistedFaceId': '1d7775c4-aaa4-4b6a-9b56-8322e5dda3ac',\n",
       "   'userData': '马嘉祺'},\n",
       "  {'persistedFaceId': '1d9c041e-f53a-4ceb-8fe6-849522328a02',\n",
       "   'userData': '丁海寅'},\n",
       "  {'persistedFaceId': '3fd13217-979f-4761-9795-a617e5fb974d',\n",
       "   'userData': '沈月'},\n",
       "  {'persistedFaceId': '8e4a7968-8a49-4afa-a2c3-1831cfd1357d',\n",
       "   'userData': '宋祖儿'},\n",
       "  {'persistedFaceId': '6bd2910e-9310-4435-ad76-cd1d335e4029',\n",
       "   'userData': '喻言'},\n",
       "  {'persistedFaceId': '187d6592-6df6-4b9d-a4f2-5c907f7d1b35',\n",
       "   'userData': '谢可寅'},\n",
       "  {'persistedFaceId': 'fe2ab606-914c-4011-b279-c54e7f71c743',\n",
       "   'userData': '安崎'},\n",
       "  {'persistedFaceId': '930da3be-28dc-40ca-bdb9-205d2a73c15b',\n",
       "   'userData': '赵小棠'},\n",
       "  {'persistedFaceId': '9d9fd554-743a-4358-adef-8de586c90f7d',\n",
       "   'userData': '孔雪儿'},\n",
       "  {'persistedFaceId': 'b0b706b4-cf05-4395-bbb1-95cfa36eeadb',\n",
       "   'userData': '马嘉祺'},\n",
       "  {'persistedFaceId': 'b323706f-c27c-471e-9523-3491196e7403',\n",
       "   'userData': '丁海寅'},\n",
       "  {'persistedFaceId': 'c22f8643-544d-445e-bf8b-b95cd30c7280',\n",
       "   'userData': '林凡'}],\n",
       " 'faceListId': 'who__',\n",
       " 'name': '谁和像我',\n",
       " 'userData': '许多人脸'}"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 检查你的facelist的信息\n",
    "get_facelist_url = \"https://eastasia.api.cognitive.microsoft.com/face/v1.0/facelists/%s\" %(faceListId)  \n",
    "r_get_facelist = requests.get(get_facelist_url,headers=headers)\n",
    "r_get_facelist.json()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[{'persistedFaceId': 'aeb02336-c590-4052-8434-18b5e1600efc',\n",
       "  'userData': '陆柯燃'},\n",
       " {'persistedFaceId': '385ecb51-7476-459b-b838-7db9ab5e1a78',\n",
       "  'userData': '陆柯燃'},\n",
       " {'persistedFaceId': '9e0fada0-efe1-4928-826b-ff1e06487397', 'userData': '沈月'},\n",
       " {'persistedFaceId': 'fe1bbc6f-b661-405a-8c35-b1ce4b594acb',\n",
       "  'userData': '宋祖儿'},\n",
       " {'persistedFaceId': '02c551a1-7834-45e6-a2d0-d09d6d24cfd3', 'userData': '邓伦'},\n",
       " {'persistedFaceId': 'ad80a5a5-b2ec-46a8-9cb4-a6e919412a75',\n",
       "  'userData': '蔡徐坤'},\n",
       " {'persistedFaceId': 'd109cb1b-60bf-4ff5-91fd-ab7987448ce5',\n",
       "  'userData': '朱一龙'},\n",
       " {'persistedFaceId': 'e3b9c796-83d7-44d9-9158-a3e8f00057a1',\n",
       "  'userData': '白敬亭'},\n",
       " {'persistedFaceId': '60191bc0-9203-4787-9188-d0dfae84f1da', 'userData': '杨幂'},\n",
       " {'persistedFaceId': '6635ea9e-4570-45a2-892d-a87fb0391516',\n",
       "  'userData': '刘雨昕'},\n",
       " {'persistedFaceId': '44976cb9-d2af-4141-8188-348ee6d605d2',\n",
       "  'userData': 'baby'},\n",
       " {'persistedFaceId': 'c4f191f3-f2a5-48fc-bdd1-eb1c3674308b',\n",
       "  'userData': '虞书欣'},\n",
       " {'persistedFaceId': '2bd76580-fab3-4302-8e8e-624f5e9ccb46', 'userData': '喻言'},\n",
       " {'persistedFaceId': '9f60d688-0c95-4516-be90-7c6df07a8711',\n",
       "  'userData': '谢可寅'},\n",
       " {'persistedFaceId': '6ace0da4-a406-444c-acc5-065070b97bf0', 'userData': '安崎'},\n",
       " {'persistedFaceId': '0f842607-1aa6-41eb-adcc-ecffd1c45476',\n",
       "  'userData': '赵小棠'},\n",
       " {'persistedFaceId': '5eb76bd0-f5c6-48b6-8219-0e7beb6387c5',\n",
       "  'userData': '孔雪儿'},\n",
       " {'persistedFaceId': '1d7775c4-aaa4-4b6a-9b56-8322e5dda3ac',\n",
       "  'userData': '马嘉祺'},\n",
       " {'persistedFaceId': '1d9c041e-f53a-4ceb-8fe6-849522328a02',\n",
       "  'userData': '丁海寅'},\n",
       " {'persistedFaceId': '3fd13217-979f-4761-9795-a617e5fb974d', 'userData': '沈月'},\n",
       " {'persistedFaceId': '8e4a7968-8a49-4afa-a2c3-1831cfd1357d',\n",
       "  'userData': '宋祖儿'},\n",
       " {'persistedFaceId': '6bd2910e-9310-4435-ad76-cd1d335e4029', 'userData': '喻言'},\n",
       " {'persistedFaceId': '187d6592-6df6-4b9d-a4f2-5c907f7d1b35',\n",
       "  'userData': '谢可寅'},\n",
       " {'persistedFaceId': 'fe2ab606-914c-4011-b279-c54e7f71c743', 'userData': '安崎'},\n",
       " {'persistedFaceId': '930da3be-28dc-40ca-bdb9-205d2a73c15b',\n",
       "  'userData': '赵小棠'},\n",
       " {'persistedFaceId': '9d9fd554-743a-4358-adef-8de586c90f7d',\n",
       "  'userData': '孔雪儿'},\n",
       " {'persistedFaceId': 'b0b706b4-cf05-4395-bbb1-95cfa36eeadb',\n",
       "  'userData': '马嘉祺'},\n",
       " {'persistedFaceId': 'b323706f-c27c-471e-9523-3491196e7403',\n",
       "  'userData': '丁海寅'},\n",
       " {'persistedFaceId': 'c22f8643-544d-445e-bf8b-b95cd30c7280', 'userData': '林凡'}]"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "faceId =  r_get_facelist.json()['persistedFaces']\n",
    "faceId"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'385ecb51-7476-459b-b838-7db9ab5e1a78'"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 键/值\n",
    "for i in faceId:\n",
    "#     print(i)\n",
    "   if i[\"userData\"] == \"陆柯燃\":\n",
    "        faceId = i[\"persistedFaceId\"]\n",
    "faceId\n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[{'persistedFaceId': 'aeb02336-c590-4052-8434-18b5e1600efc',\n",
       "  'userData': '陆柯燃'},\n",
       " {'persistedFaceId': '385ecb51-7476-459b-b838-7db9ab5e1a78',\n",
       "  'userData': '陆柯燃'},\n",
       " {'persistedFaceId': '9e0fada0-efe1-4928-826b-ff1e06487397', 'userData': '沈月'},\n",
       " {'persistedFaceId': 'fe1bbc6f-b661-405a-8c35-b1ce4b594acb',\n",
       "  'userData': '宋祖儿'},\n",
       " {'persistedFaceId': '02c551a1-7834-45e6-a2d0-d09d6d24cfd3', 'userData': '邓伦'},\n",
       " {'persistedFaceId': 'ad80a5a5-b2ec-46a8-9cb4-a6e919412a75',\n",
       "  'userData': '蔡徐坤'},\n",
       " {'persistedFaceId': 'd109cb1b-60bf-4ff5-91fd-ab7987448ce5',\n",
       "  'userData': '朱一龙'},\n",
       " {'persistedFaceId': 'e3b9c796-83d7-44d9-9158-a3e8f00057a1',\n",
       "  'userData': '白敬亭'},\n",
       " {'persistedFaceId': '60191bc0-9203-4787-9188-d0dfae84f1da', 'userData': '杨幂'},\n",
       " {'persistedFaceId': '6635ea9e-4570-45a2-892d-a87fb0391516',\n",
       "  'userData': '刘雨昕'},\n",
       " {'persistedFaceId': '44976cb9-d2af-4141-8188-348ee6d605d2',\n",
       "  'userData': 'baby'},\n",
       " {'persistedFaceId': 'c4f191f3-f2a5-48fc-bdd1-eb1c3674308b',\n",
       "  'userData': '虞书欣'},\n",
       " {'persistedFaceId': '2bd76580-fab3-4302-8e8e-624f5e9ccb46', 'userData': '喻言'},\n",
       " {'persistedFaceId': '9f60d688-0c95-4516-be90-7c6df07a8711',\n",
       "  'userData': '谢可寅'},\n",
       " {'persistedFaceId': '6ace0da4-a406-444c-acc5-065070b97bf0', 'userData': '安崎'},\n",
       " {'persistedFaceId': '0f842607-1aa6-41eb-adcc-ecffd1c45476',\n",
       "  'userData': '赵小棠'},\n",
       " {'persistedFaceId': '5eb76bd0-f5c6-48b6-8219-0e7beb6387c5',\n",
       "  'userData': '孔雪儿'},\n",
       " {'persistedFaceId': '1d7775c4-aaa4-4b6a-9b56-8322e5dda3ac',\n",
       "  'userData': '马嘉祺'},\n",
       " {'persistedFaceId': '1d9c041e-f53a-4ceb-8fe6-849522328a02',\n",
       "  'userData': '丁海寅'},\n",
       " {'persistedFaceId': '3fd13217-979f-4761-9795-a617e5fb974d', 'userData': '沈月'},\n",
       " {'persistedFaceId': '8e4a7968-8a49-4afa-a2c3-1831cfd1357d',\n",
       "  'userData': '宋祖儿'},\n",
       " {'persistedFaceId': '6bd2910e-9310-4435-ad76-cd1d335e4029', 'userData': '喻言'},\n",
       " {'persistedFaceId': '187d6592-6df6-4b9d-a4f2-5c907f7d1b35',\n",
       "  'userData': '谢可寅'},\n",
       " {'persistedFaceId': 'fe2ab606-914c-4011-b279-c54e7f71c743', 'userData': '安崎'},\n",
       " {'persistedFaceId': '930da3be-28dc-40ca-bdb9-205d2a73c15b',\n",
       "  'userData': '赵小棠'},\n",
       " {'persistedFaceId': '9d9fd554-743a-4358-adef-8de586c90f7d',\n",
       "  'userData': '孔雪儿'},\n",
       " {'persistedFaceId': 'b0b706b4-cf05-4395-bbb1-95cfa36eeadb',\n",
       "  'userData': '马嘉祺'},\n",
       " {'persistedFaceId': 'b323706f-c27c-471e-9523-3491196e7403',\n",
       "  'userData': '丁海寅'},\n",
       " {'persistedFaceId': 'c22f8643-544d-445e-bf8b-b95cd30c7280', 'userData': '林凡'}]"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "faceId =  r_get_facelist.json()['persistedFaces']\n",
    "faceId"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1d9c041e-f53a-4ceb-8fe6-849522328a02\n",
      "b323706f-c27c-471e-9523-3491196e7403\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "'b323706f-c27c-471e-9523-3491196e7403'"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "for item in faceId:\n",
    "#     print(item)\n",
    "    if item['userData'] == '丁海寅':\n",
    "        print(item['persistedFaceId'])\n",
    "        delate_face = item['persistedFaceId']\n",
    "delate_face"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### delate face"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Detect face 删除列表内人脸id\n",
    "faceListId = \"who__\"\n",
    "delete_face_url = \"https://renlian-api.cognitiveservices.azure.com/face/v1.0/facelists/{}/persistedfaces/{}\"\n",
    "subscription_key = \"f3352653237f4f85a5cd1632aa1f2ebb\"\n",
    "assert subscription_key\n",
    "# 例如：删除黄志毅： {'persistedFaceId': '69103b48-b6c4-4f58-8ac1-4c8b84e56bc1','userData': '黄智毅'},\n",
    "\n",
    "persistedFaceId= r_add_face.json()[\"persistedFaceId\"]\n",
    "# 直接取上面获得的ID{'persistedFaceId': 'f18450d3-60d2-45f3-a69e-783574dc3ce8'} \n",
    "\n",
    "headers = {\n",
    "    # Request headers\n",
    "    'Content-Type': 'application/json',\n",
    "    'Ocp-Apim-Subscription-Key': subscription_key,\n",
    "}\n",
    "\n",
    "# 注意requests请求为delete\n",
    "\n",
    "r_delete_face =requests.delete(delete_face_url.format(faceListId,persistedFaceId),headers=headers)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Response [200]>"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r_delete_face"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'persistedFaces': [{'persistedFaceId': 'aeb02336-c590-4052-8434-18b5e1600efc',\n",
       "   'userData': '陆柯燃'},\n",
       "  {'persistedFaceId': '9e0fada0-efe1-4928-826b-ff1e06487397',\n",
       "   'userData': '沈月'},\n",
       "  {'persistedFaceId': 'fe1bbc6f-b661-405a-8c35-b1ce4b594acb',\n",
       "   'userData': '宋祖儿'},\n",
       "  {'persistedFaceId': '02c551a1-7834-45e6-a2d0-d09d6d24cfd3',\n",
       "   'userData': '邓伦'},\n",
       "  {'persistedFaceId': 'ad80a5a5-b2ec-46a8-9cb4-a6e919412a75',\n",
       "   'userData': '蔡徐坤'},\n",
       "  {'persistedFaceId': 'd109cb1b-60bf-4ff5-91fd-ab7987448ce5',\n",
       "   'userData': '朱一龙'},\n",
       "  {'persistedFaceId': 'e3b9c796-83d7-44d9-9158-a3e8f00057a1',\n",
       "   'userData': '白敬亭'},\n",
       "  {'persistedFaceId': '60191bc0-9203-4787-9188-d0dfae84f1da',\n",
       "   'userData': '杨幂'},\n",
       "  {'persistedFaceId': '6635ea9e-4570-45a2-892d-a87fb0391516',\n",
       "   'userData': '刘雨昕'},\n",
       "  {'persistedFaceId': '44976cb9-d2af-4141-8188-348ee6d605d2',\n",
       "   'userData': 'baby'},\n",
       "  {'persistedFaceId': 'c4f191f3-f2a5-48fc-bdd1-eb1c3674308b',\n",
       "   'userData': '虞书欣'},\n",
       "  {'persistedFaceId': '2bd76580-fab3-4302-8e8e-624f5e9ccb46',\n",
       "   'userData': '喻言'},\n",
       "  {'persistedFaceId': '9f60d688-0c95-4516-be90-7c6df07a8711',\n",
       "   'userData': '谢可寅'},\n",
       "  {'persistedFaceId': '6ace0da4-a406-444c-acc5-065070b97bf0',\n",
       "   'userData': '安崎'},\n",
       "  {'persistedFaceId': '0f842607-1aa6-41eb-adcc-ecffd1c45476',\n",
       "   'userData': '赵小棠'},\n",
       "  {'persistedFaceId': '5eb76bd0-f5c6-48b6-8219-0e7beb6387c5',\n",
       "   'userData': '孔雪儿'},\n",
       "  {'persistedFaceId': '1d7775c4-aaa4-4b6a-9b56-8322e5dda3ac',\n",
       "   'userData': '马嘉祺'},\n",
       "  {'persistedFaceId': '1d9c041e-f53a-4ceb-8fe6-849522328a02',\n",
       "   'userData': '丁海寅'},\n",
       "  {'persistedFaceId': '3fd13217-979f-4761-9795-a617e5fb974d',\n",
       "   'userData': '沈月'},\n",
       "  {'persistedFaceId': '8e4a7968-8a49-4afa-a2c3-1831cfd1357d',\n",
       "   'userData': '宋祖儿'},\n",
       "  {'persistedFaceId': '6bd2910e-9310-4435-ad76-cd1d335e4029',\n",
       "   'userData': '喻言'},\n",
       "  {'persistedFaceId': '187d6592-6df6-4b9d-a4f2-5c907f7d1b35',\n",
       "   'userData': '谢可寅'},\n",
       "  {'persistedFaceId': 'fe2ab606-914c-4011-b279-c54e7f71c743',\n",
       "   'userData': '安崎'},\n",
       "  {'persistedFaceId': '930da3be-28dc-40ca-bdb9-205d2a73c15b',\n",
       "   'userData': '赵小棠'},\n",
       "  {'persistedFaceId': '9d9fd554-743a-4358-adef-8de586c90f7d',\n",
       "   'userData': '孔雪儿'},\n",
       "  {'persistedFaceId': 'b0b706b4-cf05-4395-bbb1-95cfa36eeadb',\n",
       "   'userData': '马嘉祺'},\n",
       "  {'persistedFaceId': 'b323706f-c27c-471e-9523-3491196e7403',\n",
       "   'userData': '丁海寅'},\n",
       "  {'persistedFaceId': 'c22f8643-544d-445e-bf8b-b95cd30c7280',\n",
       "   'userData': '林凡'}],\n",
       " 'faceListId': 'who__',\n",
       " 'name': '谁和像我',\n",
       " 'userData': '许多人脸'}"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 检查你的facelist的信息\n",
    "get_facelist_url = \"https://renlian-api.cognitiveservices.azure.com/face/v1.0/facelists/%s\" %(faceListId) \n",
    "r_get_facelist = requests.get(get_facelist_url,headers=headers)\n",
    "r_get_facelist.json()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Find similars 返回相似置信度\n",
    "- [监测人脸相似度api文档](https://docs.microsoft.com/zh-cn/rest/api/cognitiveservices/face/face/findsimilar)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[{'faceId': '8c181b44-f357-4c06-9a60-5b741f826a40',\n",
       "  'faceRectangle': {'top': 55, 'left': 81, 'width': 51, 'height': 51}}]"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Detect 检测人脸的id\n",
    "# replace <My Endpoint String> with the string from your endpoint URL\n",
    "face_api_url = 'https://renlian-api.cognitiveservices.azure.com/face/v1.0/detect'\n",
    "\n",
    "# 请求正文\n",
    "image_url = 'https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcRVDy7vANvg853tIW-r8BfG-UobWnTqTQ9Fww&usqp=CAU'\n",
    "\n",
    "headers = {'Ocp-Apim-Subscription-Key':'f3352653237f4f85a5cd1632aa1f2ebb'}\n",
    "\n",
    "# 请求参数\n",
    "params = {\n",
    "    'returnFaceId': 'true',\n",
    "    'returnFaceLandmarks': 'false',\n",
    "    # 选择model\n",
    "    'recognitionModel':'recognition_03',#此参数需与facelist参数一致\n",
    "    'detectionModel':'detection_01',\n",
    "    # 可选参数,请仔细阅读API文档\n",
    "    'returnFaceAttributes': '',\n",
    "}\n",
    "\n",
    "response = requests.post(face_api_url, params=params,\n",
    "                         headers=headers, json={\"url\": image_url})\n",
    "# json.dumps 将json--->字符串\n",
    "response.json()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "陆柯燃的脸 = response.json()[0][\"faceId\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "findsimilars_url = \"https://renlian-api.cognitiveservices.azure.com/face/v1.0/findsimilars\"\n",
    "\n",
    "# 请求正文 faceId需要先检测一张照片获取\n",
    "data_findsimilars = {\n",
    "    \"faceId\":陆柯燃的脸,#取上方的faceID\n",
    "    \"faceListId\": \"who_\",\n",
    "#     \"faceIds\":faceId_02,\n",
    "    \"maxNumOfCandidatesReturned\": 10,\n",
    "    \"mode\": \"matchFace\"#matchPerson #一种为验证模式，一种为相似值模式\n",
    "    }\n",
    "\n",
    "r_findsimilars = requests.post(findsimilars_url,headers=headers,json=data_findsimilars)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Response [200]>"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r_findsimilars"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[{'persistedFaceId': 'f53bf9ec-4e43-46ed-8c6a-ec2a4c7e3a7d',\n",
       "  'confidence': 0.76371},\n",
       " {'persistedFaceId': 'a45651f5-335c-4a37-ba4a-51eddf32a309',\n",
       "  'confidence': 0.28981},\n",
       " {'persistedFaceId': 'c4985b6f-fbfb-4e2d-88b7-89cb0a7ba4f4',\n",
       "  'confidence': 0.28559},\n",
       " {'persistedFaceId': '1781430c-62c6-4ac0-81fd-9ec51c868703',\n",
       "  'confidence': 0.27771},\n",
       " {'persistedFaceId': '0bddadc0-a6e1-48e5-8c84-33fd35dec032',\n",
       "  'confidence': 0.25116},\n",
       " {'persistedFaceId': '65fe40e9-c73b-4e21-a2b5-57edd2d332b6',\n",
       "  'confidence': 0.16063},\n",
       " {'persistedFaceId': '0d688496-82a8-4f31-a1eb-24fb2dfdb9a2',\n",
       "  'confidence': 0.13368},\n",
       " {'persistedFaceId': 'f0c37836-9449-4bb7-b5a2-c5bee702aca3',\n",
       "  'confidence': 0.12909},\n",
       " {'persistedFaceId': 'e45d54f3-dd7f-4bac-99ca-4368c13b717b',\n",
       "  'confidence': 0.12253},\n",
       " {'persistedFaceId': '485cad41-d077-4f1d-9f93-c5b7ae39892d',\n",
       "  'confidence': 0.10585}]"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r_findsimilars.json()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>persistedFaceId</th>\n",
       "      <th>userData</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>aeb02336-c590-4052-8434-18b5e1600efc</td>\n",
       "      <td>陆柯燃</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>9e0fada0-efe1-4928-826b-ff1e06487397</td>\n",
       "      <td>沈月</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>fe1bbc6f-b661-405a-8c35-b1ce4b594acb</td>\n",
       "      <td>宋祖儿</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>02c551a1-7834-45e6-a2d0-d09d6d24cfd3</td>\n",
       "      <td>邓伦</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>ad80a5a5-b2ec-46a8-9cb4-a6e919412a75</td>\n",
       "      <td>蔡徐坤</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>d109cb1b-60bf-4ff5-91fd-ab7987448ce5</td>\n",
       "      <td>朱一龙</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>e3b9c796-83d7-44d9-9158-a3e8f00057a1</td>\n",
       "      <td>白敬亭</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>60191bc0-9203-4787-9188-d0dfae84f1da</td>\n",
       "      <td>杨幂</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>6635ea9e-4570-45a2-892d-a87fb0391516</td>\n",
       "      <td>刘雨昕</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>44976cb9-d2af-4141-8188-348ee6d605d2</td>\n",
       "      <td>baby</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>c4f191f3-f2a5-48fc-bdd1-eb1c3674308b</td>\n",
       "      <td>虞书欣</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>2bd76580-fab3-4302-8e8e-624f5e9ccb46</td>\n",
       "      <td>喻言</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>9f60d688-0c95-4516-be90-7c6df07a8711</td>\n",
       "      <td>谢可寅</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>6ace0da4-a406-444c-acc5-065070b97bf0</td>\n",
       "      <td>安崎</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>0f842607-1aa6-41eb-adcc-ecffd1c45476</td>\n",
       "      <td>赵小棠</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>5eb76bd0-f5c6-48b6-8219-0e7beb6387c5</td>\n",
       "      <td>孔雪儿</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>1d7775c4-aaa4-4b6a-9b56-8322e5dda3ac</td>\n",
       "      <td>马嘉祺</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>1d9c041e-f53a-4ceb-8fe6-849522328a02</td>\n",
       "      <td>丁海寅</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>3fd13217-979f-4761-9795-a617e5fb974d</td>\n",
       "      <td>沈月</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>8e4a7968-8a49-4afa-a2c3-1831cfd1357d</td>\n",
       "      <td>宋祖儿</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>6bd2910e-9310-4435-ad76-cd1d335e4029</td>\n",
       "      <td>喻言</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>187d6592-6df6-4b9d-a4f2-5c907f7d1b35</td>\n",
       "      <td>谢可寅</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>fe2ab606-914c-4011-b279-c54e7f71c743</td>\n",
       "      <td>安崎</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>930da3be-28dc-40ca-bdb9-205d2a73c15b</td>\n",
       "      <td>赵小棠</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>9d9fd554-743a-4358-adef-8de586c90f7d</td>\n",
       "      <td>孔雪儿</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>b0b706b4-cf05-4395-bbb1-95cfa36eeadb</td>\n",
       "      <td>马嘉祺</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>b323706f-c27c-471e-9523-3491196e7403</td>\n",
       "      <td>丁海寅</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>c22f8643-544d-445e-bf8b-b95cd30c7280</td>\n",
       "      <td>林凡</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         persistedFaceId userData\n",
       "0   aeb02336-c590-4052-8434-18b5e1600efc      陆柯燃\n",
       "1   9e0fada0-efe1-4928-826b-ff1e06487397       沈月\n",
       "2   fe1bbc6f-b661-405a-8c35-b1ce4b594acb      宋祖儿\n",
       "3   02c551a1-7834-45e6-a2d0-d09d6d24cfd3       邓伦\n",
       "4   ad80a5a5-b2ec-46a8-9cb4-a6e919412a75      蔡徐坤\n",
       "5   d109cb1b-60bf-4ff5-91fd-ab7987448ce5      朱一龙\n",
       "6   e3b9c796-83d7-44d9-9158-a3e8f00057a1      白敬亭\n",
       "7   60191bc0-9203-4787-9188-d0dfae84f1da       杨幂\n",
       "8   6635ea9e-4570-45a2-892d-a87fb0391516      刘雨昕\n",
       "9   44976cb9-d2af-4141-8188-348ee6d605d2     baby\n",
       "10  c4f191f3-f2a5-48fc-bdd1-eb1c3674308b      虞书欣\n",
       "11  2bd76580-fab3-4302-8e8e-624f5e9ccb46       喻言\n",
       "12  9f60d688-0c95-4516-be90-7c6df07a8711      谢可寅\n",
       "13  6ace0da4-a406-444c-acc5-065070b97bf0       安崎\n",
       "14  0f842607-1aa6-41eb-adcc-ecffd1c45476      赵小棠\n",
       "15  5eb76bd0-f5c6-48b6-8219-0e7beb6387c5      孔雪儿\n",
       "16  1d7775c4-aaa4-4b6a-9b56-8322e5dda3ac      马嘉祺\n",
       "17  1d9c041e-f53a-4ceb-8fe6-849522328a02      丁海寅\n",
       "18  3fd13217-979f-4761-9795-a617e5fb974d       沈月\n",
       "19  8e4a7968-8a49-4afa-a2c3-1831cfd1357d      宋祖儿\n",
       "20  6bd2910e-9310-4435-ad76-cd1d335e4029       喻言\n",
       "21  187d6592-6df6-4b9d-a4f2-5c907f7d1b35      谢可寅\n",
       "22  fe2ab606-914c-4011-b279-c54e7f71c743       安崎\n",
       "23  930da3be-28dc-40ca-bdb9-205d2a73c15b      赵小棠\n",
       "24  9d9fd554-743a-4358-adef-8de586c90f7d      孔雪儿\n",
       "25  b0b706b4-cf05-4395-bbb1-95cfa36eeadb      马嘉祺\n",
       "26  b323706f-c27c-471e-9523-3491196e7403      丁海寅\n",
       "27  c22f8643-544d-445e-bf8b-b95cd30c7280       林凡"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "#facelist里面的数据\n",
    "faceListId_df = pd.json_normalize(r_get_facelist.json()[\"persistedFaces\"])# 升级pandas才能运行\n",
    "faceListId_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>persistedFaceId</th>\n",
       "      <th>confidence</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>f53bf9ec-4e43-46ed-8c6a-ec2a4c7e3a7d</td>\n",
       "      <td>0.76371</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>a45651f5-335c-4a37-ba4a-51eddf32a309</td>\n",
       "      <td>0.28981</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>c4985b6f-fbfb-4e2d-88b7-89cb0a7ba4f4</td>\n",
       "      <td>0.28559</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1781430c-62c6-4ac0-81fd-9ec51c868703</td>\n",
       "      <td>0.27771</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0bddadc0-a6e1-48e5-8c84-33fd35dec032</td>\n",
       "      <td>0.25116</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>65fe40e9-c73b-4e21-a2b5-57edd2d332b6</td>\n",
       "      <td>0.16063</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0d688496-82a8-4f31-a1eb-24fb2dfdb9a2</td>\n",
       "      <td>0.13368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>f0c37836-9449-4bb7-b5a2-c5bee702aca3</td>\n",
       "      <td>0.12909</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>e45d54f3-dd7f-4bac-99ca-4368c13b717b</td>\n",
       "      <td>0.12253</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>485cad41-d077-4f1d-9f93-c5b7ae39892d</td>\n",
       "      <td>0.10585</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                        persistedFaceId  confidence\n",
       "0  f53bf9ec-4e43-46ed-8c6a-ec2a4c7e3a7d     0.76371\n",
       "1  a45651f5-335c-4a37-ba4a-51eddf32a309     0.28981\n",
       "2  c4985b6f-fbfb-4e2d-88b7-89cb0a7ba4f4     0.28559\n",
       "3  1781430c-62c6-4ac0-81fd-9ec51c868703     0.27771\n",
       "4  0bddadc0-a6e1-48e5-8c84-33fd35dec032     0.25116\n",
       "5  65fe40e9-c73b-4e21-a2b5-57edd2d332b6     0.16063\n",
       "6  0d688496-82a8-4f31-a1eb-24fb2dfdb9a2     0.13368\n",
       "7  f0c37836-9449-4bb7-b5a2-c5bee702aca3     0.12909\n",
       "8  e45d54f3-dd7f-4bac-99ca-4368c13b717b     0.12253\n",
       "9  485cad41-d077-4f1d-9f93-c5b7ae39892d     0.10585"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 返回相似度的数据\n",
    "find_df = pd.json_normalize(r_findsimilars.json())# 升级pandas才能运行\n",
    "find_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>persistedFaceId</th>\n",
       "      <th>userData</th>\n",
       "      <th>confidence</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Empty DataFrame\n",
       "Columns: [persistedFaceId, userData, confidence]\n",
       "Index: []"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.merge(faceListId_df, find_df,how='inner', on='persistedFaceId').sort_values(by=\"confidence\",ascending = False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 设计人脸识别门禁/打卡/签到 小程序"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Face++ FaceSets 实践\n",
    "\n",
    "\n",
    ">* 1. FaceSet Create\n",
    ">* 2. FaceSet GetDetail\n",
    ">* 3. FaceSet AddFace\n",
    ">* 4. FaceSet RemoveFace\n",
    ">* 5. FaceSet Update\n",
    ">* 6. Compare Face"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 准备工作"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [],
   "source": [
    "api_secret = \"CEQn_ZZatzYZKEXYVnLKcu_5lSSq1r8P\"\n",
    "api_key =\"Kl1MpL0cHs3nKmtnltvjkvBH_M6tXyR8\" \n",
    "\n",
    "# Replace with a valid Subscription Key here."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## FaceSet Create（创建人脸集合）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 1. FaceSet Create\n",
    "import requests,json\n",
    "\n",
    "display_name = \"the 9\"\n",
    "outer_id = \"9\"\n",
    "user_data = \"9个女孩\"\n",
    "\n",
    "CreateFace_Url = \"https://api-cn.faceplusplus.com/facepp/v3/faceset/create\"\n",
    "headers ={\n",
    "     'Content-Type': 'application/json'\n",
    "}\n",
    "\n",
    "payload = {\n",
    "    'api_key': api_key,\n",
    "    'api_secret': api_secret,   \n",
    "  'display_name':display_name,\n",
    "    'outer_id':outer_id,\n",
    "    'user_data':user_data\n",
    "  \n",
    "}\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [],
   "source": [
    "r = requests.post(CreateFace_Url, params=payload)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'faceset_token': 'fdf8b1b04d33f61c5f84abf667a21406',\n",
       " 'time_used': 201,\n",
       " 'face_count': 0,\n",
       " 'face_added': 0,\n",
       " 'request_id': '1603524814,9136305e-a0c5-4f5c-94f1-78d454ee64b4',\n",
       " 'outer_id': '9',\n",
       " 'failure_detail': []}"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r.json()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## FaceSet GetDetail（获取人脸集合信息）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": [
    "GetDetail_Url = \"https://api-cn.faceplusplus.com/facepp/v3/faceset/getdetail\"\n",
    "\n",
    "payload = {\n",
    "    'api_key': api_key,\n",
    "    'api_secret': api_secret,\n",
    "    'outer_id':outer_id,\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [],
   "source": [
    "r = requests.post(GetDetail_Url,params=payload)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'faceset_token': 'fdf8b1b04d33f61c5f84abf667a21406',\n",
       " 'tags': '',\n",
       " 'time_used': 126,\n",
       " 'user_data': '9个女孩',\n",
       " 'display_name': 'the 9',\n",
       " 'face_tokens': [],\n",
       " 'face_count': 0,\n",
       " 'request_id': '1603524824,fccef90b-db4b-4137-b599-4a1342c597dc',\n",
       " 'outer_id': '9'}"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r.json()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 检测人脸"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'request_id': '1603524833,b052b67f-765a-4e21-a6e8-3f8a42e9ccb7',\n",
       " 'time_used': 527,\n",
       " 'faces': [{'face_token': '05d86d542dc8c5ae2157253e96c890a3',\n",
       "   'face_rectangle': {'top': 371, 'left': 784, 'width': 65, 'height': 65}},\n",
       "  {'face_token': 'df05a52d03814509dab5401ea5ce26ed',\n",
       "   'face_rectangle': {'top': 376, 'left': 628, 'width': 64, 'height': 64}},\n",
       "  {'face_token': 'fe8490048f9cd9b759ae1a24013fdaba',\n",
       "   'face_rectangle': {'top': 384, 'left': 969, 'width': 61, 'height': 61}},\n",
       "  {'face_token': '4eb63495d5ef51d3f150e0c4b1218078',\n",
       "   'face_rectangle': {'top': 300, 'left': 400, 'width': 59, 'height': 59}},\n",
       "  {'face_token': 'fa971b84964e68eee594f90fc61fc342',\n",
       "   'face_rectangle': {'top': 285, 'left': 1144, 'width': 58, 'height': 58}},\n",
       "  {'face_token': '2e4235aca211727ed0c617cdf5a49200',\n",
       "   'face_rectangle': {'top': 165, 'left': 820, 'width': 55, 'height': 55}},\n",
       "  {'face_token': '780d1aa1ea63e2e1d7ef0a046f406e9d',\n",
       "   'face_rectangle': {'top': 177, 'left': 556, 'width': 54, 'height': 54}},\n",
       "  {'face_token': '3e417caa60304765dc55bbaf9c48bea5',\n",
       "   'face_rectangle': {'top': 164, 'left': 954, 'width': 52, 'height': 52}},\n",
       "  {'face_token': 'e6f59aff6e33abf275bed9ae33452262',\n",
       "   'face_rectangle': {'top': 180, 'left': 690, 'width': 52, 'height': 52}}],\n",
       " 'image_id': 'rmd7P/VJnkMsSUJbf4wMDA==',\n",
       " 'face_num': 9}"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import requests\n",
    "Detect_url=\"https://api-cn.faceplusplus.com/facepp/v3/detect\"\n",
    "\n",
    "payload={\n",
    "    'api_key':api_key,\n",
    "    'api_secret':api_secret,\n",
    "    'image_url':\"https://n.sinaimg.cn/sinakd20109/300/w1620h1080/20200630/4d8e-ivrxcex5482599.jpg\"\n",
    "}\n",
    "r=requests.post(Detect_url,params=payload)\n",
    "r.json()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## FaceSet AddFace（增加人脸信息）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [],
   "source": [
    "AddFace_url = \" https://api-cn.faceplusplus.com/facepp/v3/faceset/addface\"\n",
    "\n",
    "payload = {\n",
    "    'api_key': api_key,\n",
    "    'api_secret': api_secret,\n",
    "    'faceset_token':'fdf8b1b04d33f61c5f84abf667a21406',\n",
    "    'face_tokens':'05d86d542dc8c5ae2157253e96c890a3,df05a52d03814509dab5401ea5ce26ed,fe8490048f9cd9b759ae1a24013fdaba,4eb63495d5ef51d3f150e0c4b1218078,fa971b84964e68eee594f90fc61fc342',\n",
    "}\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [],
   "source": [
    "r = requests.post(AddFace_url,params=payload)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'faceset_token': 'fdf8b1b04d33f61c5f84abf667a21406',\n",
       " 'time_used': 1026,\n",
       " 'face_count': 5,\n",
       " 'face_added': 4,\n",
       " 'request_id': '1603526615,a7beaa6c-a46e-4b6f-b183-ad01947015ef',\n",
       " 'outer_id': '9',\n",
       " 'failure_detail': []}"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r.json()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## FaceSet RemoveFace（移除人脸信息）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [],
   "source": [
    "RemoveFace_url = \" https://api-cn.faceplusplus.com/facepp/v3/faceset/removeface\"\n",
    "\n",
    "payload = {\n",
    "    'api_key': api_key,\n",
    "    'api_secret': api_secret,\n",
    "    'faceset_token':'fdf8b1b04d33f61c5f84abf667a21406',\n",
    "    'face_tokens':'05d86d542dc8c5ae2157253e96c890a3',\n",
    "}\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [],
   "source": [
    "r = requests.post(RemoveFace_url,params=payload)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'faceset_token': 'fdf8b1b04d33f61c5f84abf667a21406',\n",
       " 'face_removed': 1,\n",
       " 'time_used': 175,\n",
       " 'face_count': 4,\n",
       " 'request_id': '1603526676,f96399fa-3d08-4d55-a455-3e3f00361b6a',\n",
       " 'outer_id': '9',\n",
       " 'failure_detail': []}"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r.json()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## FaceSet Update（更新人脸集合信息）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [],
   "source": [
    "Update_url = \"https://api-cn.faceplusplus.com/facepp/v3/faceset/update\"\n",
    "\n",
    "payload = {\n",
    "    'api_key': api_key,\n",
    "    'api_secret': api_secret,\n",
    "    'faceset_token':'fdf8b1b04d33f61c5f84abf667a21406',\n",
    "    'user_data':\"9个女孩\",\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [],
   "source": [
    "r = requests.post(Update_url,params=payload)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'faceset_token': 'fdf8b1b04d33f61c5f84abf667a21406',\n",
       " 'request_id': '1603526799,c5d84e0f-5096-4b6c-a268-af53d8068639',\n",
       " 'time_used': 71,\n",
       " 'outer_id': '9'}"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r.json()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Compare Face（对比人脸相似度）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [],
   "source": [
    "lukeran01 ='http://n.sinaimg.cn/sinakd20200512ac/60/w480h380/20200512/b6ce-itmiwrz3962334.jpg'\n",
    "lukeran02 ='https://c-ssl.duitang.com/uploads/item/202004/01/20200401002429_wmvdu.thumb.400_0.jpg'\n",
    "dinghaiyin ='https://c-ssl.duitang.com/uploads/item/201806/09/20180609090034_rsuws.thumb.700_0.jpg'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 方案1:直接对比"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [],
   "source": [
    "Compare_url = \"https://api-cn.faceplusplus.com/facepp/v3/compare\"\n",
    "\n",
    "payload ={\n",
    "    'api_key': api_key,\n",
    "    'api_secret': api_secret,\n",
    "    'image_url1':lukeran01,\n",
    "    'image_url2':dinghaiyin\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [],
   "source": [
    "r = requests.post(Compare_url,params=payload)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'faces1': [{'face_rectangle': {'width': 96,\n",
       "    'top': 92,\n",
       "    'left': 158,\n",
       "    'height': 96},\n",
       "   'face_token': 'd618bf460f32e0621353ccff98da7c09'}],\n",
       " 'faces2': [{'face_rectangle': {'width': 230,\n",
       "    'top': 233,\n",
       "    'left': 243,\n",
       "    'height': 230},\n",
       "   'face_token': '59458e75bfc093d1f69897163e7b4381'}],\n",
       " 'time_used': 3109,\n",
       " 'thresholds': {'1e-3': 62.327, '1e-5': 73.975, '1e-4': 69.101},\n",
       " 'confidence': 30.792,\n",
       " 'image_id2': 'b1YeoaDvbDGmnc3Qr18pcA==',\n",
       " 'image_id1': 'zpjXnOLwpxVBgWlO7j7Vkg==',\n",
       " 'request_id': '1603528485,ce87f295-3692-4439-a6f5-2d88c0922ebf'}"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r.json()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 方案2:与人脸集合进行对比"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 面部检测(获取face_token)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [],
   "source": [
    "Detect_url = 'https://api-cn.faceplusplus.com/facepp/v3/detect' \n",
    "img_url =lukeran01\n",
    "\n",
    "payload = {\n",
    "    \"image_url\":img_url,\n",
    "    'api_key': api_key,\n",
    "    'api_secret': api_secret,\n",
    "    'return_attributes':'gender,age,smiling,emotion', \n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [],
   "source": [
    "r = requests.post(Detect_url,params=payload)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'request_id': '1603528538,ba2d1831-819e-486a-81ff-d6f7709e9aa6',\n",
       " 'time_used': 277,\n",
       " 'faces': [{'face_token': '8b2aa11570c94a18548ad79953030c17',\n",
       "   'face_rectangle': {'top': 92, 'left': 158, 'width': 96, 'height': 96},\n",
       "   'attributes': {'gender': {'value': 'Female'},\n",
       "    'age': {'value': 21},\n",
       "    'smile': {'value': 0.16, 'threshold': 50.0},\n",
       "    'emotion': {'anger': 0.142,\n",
       "     'disgust': 0.035,\n",
       "     'fear': 0.117,\n",
       "     'happiness': 0.03,\n",
       "     'neutral': 96.008,\n",
       "     'sadness': 0.125,\n",
       "     'surprise': 3.543}}}],\n",
       " 'image_id': 'zpjXnOLwpxVBgWlO7j7Vkg==',\n",
       " 'face_num': 1}"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r.json()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 加入人脸集合"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 人脸识别社会/政治使用思考\n",
    "> 人脸识别的 API比较\n",
    ">> * [Face Off: Confronting Bias in Face Recognition AI](https://www.kairos.com/blog/face-off-confronting-bias-in-face-recognition-ai)\n",
    ">> * [为什么世界现在需要道德的面部识别](https://www.kairos.com/blog/why-the-world-needs-ethical-facial-recognition-now)\n",
    "    * 到2023年，全球人脸识别市场的价值估计接近100亿美元，复合年增长率为16.8％。市场背后的主要增长动力是监视市场的发展以及生物识别技术领域的政府支出。但是，面部识别的使用在其他领域也有很大贡献，例如帮助企业打击消费者欺诈，满足动态法规遵从性以及提供可获利的客户体验。\n",
    "\n",
    "-----\n",
    "> 人脸识别的偏差及API 政治经济学 \n",
    ">> * [对抗：面对面部识别AI中的偏见](https://www.kairos.com/blog/face-off-confronting-bias-in-face-recognition-ai)\n",
    "    * 发生了什么？\n",
    "        * “编码注视”或算法偏差的研究: 浅肤色男性的错误率为0.8％ ?  深色皮肤女性的错误率高达34.7％  ? (Microsoft，IBM和Face ++)\n",
    "    * 用户的反应范围从惊奇和赞美到不悦和冒犯\n",
    "        * 我们承认目前提供的种族分类（黑人，白人，亚裔，西班牙裔，其他则不足以代表丰富多样，发展迅速的文化和种族挂毯\n",
    "    * 该怎么办？\n",
    "        * 改善数据\n",
    "        * 寻求持续的反馈    \n",
    "        \n",
    ">>  * [科技行业没有应对面部识别偏见的计划](https://www.theverge.com/2018/7/26/17616290/facial-recognition-ai-bias-benchmark-test) \n",
    ">>> 公司在做什么？(一些高科技大公司支持基准和法规)     \n",
    ">>> 我们如何解决偏见问题？    \n",
    ">>> 偏差不是唯一的问题\n",
    "\n",
    ">> * [面部识别尚未准备好给执法部门使用](https://techcrunch.com/2018/06/25/facial-recognition-software-is-not-ready-for-use-by-law-enforcement/)\n",
    " "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 计算机视觉\n",
    "\n",
    "* 学习并完成所有Azure computer version 的API调用\n",
    "> * 分析远程图像    \n",
    "> * 分析本地图片    \n",
    "> * 生成缩略图    \n",
    "> * 提取印刷体文本和手写文本    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 分析远程图像"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{\"categories\": [{\"name\": \"people_\", \"score\": 0.375, \"detail\": {\"celebrities\": []}}], \"color\": {\"dominantColorForeground\": \"White\", \"dominantColorBackground\": \"Black\", \"dominantColors\": [\"Black\", \"White\"], \"accentColor\": \"7A7951\", \"isBwImg\": false, \"isBWImg\": false}, \"description\": {\"tags\": [\"person\", \"holding\", \"outdoor\", \"woman\", \"hand\", \"looking\", \"cellphone\", \"phone\", \"game\", \"lady\", \"girl\", \"young\", \"man\", \"using\", \"wearing\", \"playing\", \"standing\", \"food\", \"female\", \"street\", \"people\", \"video\"], \"captions\": [{\"text\": \"a woman holding a cell phone\", \"confidence\": 0.6109318849231509}]}, \"requestId\": \"b629288b-9f54-43db-ae63-15fd72a88b45\", \"metadata\": {\"height\": 2048, \"width\": 1365, \"format\": \"Jpeg\"}}\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import requests\n",
    "# If you are using a Jupyter notebook, uncomment the following line.\n",
    "# %matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "import json\n",
    "from PIL import Image\n",
    "from io import BytesIO\n",
    "\n",
    "# Add your Computer Vision subscription key and endpoint to your environment variables.\n",
    "# if 'COMPUTER_VISION_SUBSCRIPTION_KEY' in os.environ:\n",
    "#     subscription_key = os.environ['COMPUTER_VISION_SUBSCRIPTION_KEY']\n",
    "# else:\n",
    "#     print(\"\\nSet the COMPUTER_VISION_SUBSCRIPTION_KEY environment variable.\\n**Restart your shell or IDE for changes to take effect.**\")\n",
    "#     sys.exit()\n",
    "\n",
    "endpoint = \"https://eastasia.api.cognitive.microsoft.com\"\n",
    "# if 'COMPUTER_VISION_ENDPOINT' in os.environ:\n",
    "#     endpoint = os.environ['COMPUTER_VISION_ENDPOINT']\n",
    "subscription_key = \"f05cf5e2ffe7487a95f18abc23de7a25\"\n",
    "\n",
    "# base url\n",
    "analyze_url =\"https://eastasia.api.cognitive.microsoft.com/vision/v2.1/analyze\"\n",
    "\n",
    "# Set image_url to the URL of an image that you want to analyze.\n",
    "image_url = \"https://pic4.zhimg.com/v2-f007e64926fff1168a238ea89984e670_r.jpg\"\n",
    "\n",
    "headers = {'Ocp-Apim-Subscription-Key': subscription_key}\n",
    "# 参数\n",
    "params = {'visualFeatures': 'Categories,Description,Color'}\n",
    "# 请求主体body\n",
    "data = {'url': image_url}\n",
    "response = requests.post(analyze_url, headers=headers,\n",
    "                         params=params, json=data)\n",
    "response.raise_for_status()\n",
    "\n",
    "# The 'analysis' object contains various fields that describe the image. The most\n",
    "# relevant caption for the image is obtained from the 'description' property.\n",
    "analysis = response.json()\n",
    "print(json.dumps(response.json()))\n",
    "image_caption = analysis[\"description\"][\"captions\"][0][\"text\"].capitalize()\n",
    "\n",
    "# Display the image and overlay it with the caption.\n",
    "image = Image.open(BytesIO(requests.get(image_url).content))\n",
    "plt.imshow(image)\n",
    "plt.axis(\"off\")\n",
    "_ = plt.title(image_caption, size=\"x-large\", y=-0.1)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 生成缩略图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Thumbnail is 100-by-100\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import os\n",
    "import sys\n",
    "import requests\n",
    "# If you are using a Jupyter notebook, uncomment the following line.\n",
    "# %matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "from PIL import Image\n",
    "from io import BytesIO\n",
    "\n",
    "# Add your Computer Vision subscription key and endpoint to your environment variables.\n",
    "# if 'COMPUTER_VISION_SUBSCRIPTION_KEY' in os.environ:\n",
    "#     subscription_key = os.environ['COMPUTER_VISION_SUBSCRIPTION_KEY']\n",
    "# else:\n",
    "#     print(\"\\nSet the COMPUTER_VISION_SUBSCRIPTION_KEY environment variable.\\n**Restart your shell or IDE for changes to take effect.**\")\n",
    "#     sys.exit()\n",
    "\n",
    "# if 'COMPUTER_VISION_ENDPOINT' in os.environ:\n",
    "#     endpoint = os.environ['COMPUTER_VISION_ENDPOINT']\n",
    "\n",
    "thumbnail_url = \"https://test01.cognitiveservices.azure.com/\" + \"vision/v2.1/generateThumbnail\"\n",
    "\n",
    "# Set image_url to the URL of an image that you want to analyze.\n",
    "image_url = \"https://c-ssl.duitang.com/uploads/item/202004/10/20200410142943_ogigw.thumb.1000_0.jpg\"\n",
    "\n",
    "headers = {'Ocp-Apim-Subscription-Key': \"f05cf5e2ffe7487a95f18abc23de7a25\"}\n",
    "params = {'width': '100', 'height': '100', 'smartCropping': 'true'}\n",
    "data = {'url': image_url}\n",
    "response = requests.post(thumbnail_url, headers=headers,\n",
    "                         params=params, json=data)\n",
    "response.raise_for_status()\n",
    "\n",
    "thumbnail = Image.open(BytesIO(response.content))\n",
    "\n",
    "# Display the thumbnail.\n",
    "plt.imshow(thumbnail)\n",
    "plt.axis(\"off\")\n",
    "\n",
    "# Verify the thumbnail size.\n",
    "print(\"Thumbnail is {0}-by-{1}\".format(*thumbnail.size))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "## 提取印刷体文本和手写文本 \n",
    "* 假如我们抓取了1000张网页，出了文本信息我们分析以外，还有每个页面的图片的信息，我们可以用提取图片文本的方式，将图片的信息也抓取下来\n",
    "* 我们进抓取了图片，想知道这些图片的内容是什么，也可以用提取文本的方式进行提取\n",
    "* ...."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 学习人脸识别和计算机视觉心得体会\n",
    "\n",
    "> 做这个作业花费了我很多时间，有时候一直在出错，但万幸的是，我把它搞出来了，还是需要不断地学习。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {
    "height": "380px",
    "left": "39px",
    "top": "166.284px",
    "width": "256.932px"
   },
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
